Eu sugeriria algumas opções.
-
Proteja a chave ssh e exija o uso de
sudo
no lado da sua equipe de suporte. Você poderia fazer isso de forma transparente com um invólucro. Chame o wrapper, digamos,/usr/local/bin/ssh-support
e faça com que ele seja assim (não testado):#!/bin/bash export PATH=/usr/local/bin:/usr/bin:/bin export IFS=$' \t\n' export SUSER=ssupport # Restart if not running under sudo test "X$1" != 'X-S' && exec sudo -u "$SUSER" /usr/local/bin/ssh-support -S "$@" shift export SHOME="$(getent passwd "$SUSER" | cut -d: -f6)" # Extract single argument as hostname LABEL and validate that we have # an RSA private key for it. The target username, real hostname, port, # etc. can be defined in ~/.ssh/config for the user $SUSER (ssupport) label="$1" idfile="$SUSER/.ssh/id_rsa_for_$label" cgfile="$SUSER/.ssh/config" ok=true [[ "$label" =~ '/' ]] && { echo "Invalid label: $label" >&2; ok=; } [[ ! -s "$idfile" ]] && { echo "Missing identity file: $idfile" >&2; ok=; } [[ ! -s "$cgfile" ]] && { echo "Missing configuration file: $cgfile" >&2; ok=; } if test -n "$ok" then logger -t ssh-support "$SUDO_USER requested ssh to $label" exec ssh -i "$idfile" -F "$cgfile" "$label" fi exit 1
Isso exigiria uma entrada no arquivo
sudoers
que permitisse que os usuários do gruposupport
usassem a ferramenta. Esse comando permite que eles executem a ferramentassh-support
comossupport
user - que você deve criar. não confere nenhum privilégio de root.%support ALL = (ssupport) /usr/local/bin/ssh-support
Se você está feliz que os usuários de suporte não precisem fornecer sua própria senha para executar a ferramenta (conforme solicitado pela invocação
sudo
dentro do próprio script), você pode alterar a definiçãosudoers
assim:%support ALL = (ssupport) NOPASSWD: /usr/local/bin/ssh-support
Supondo que
PATH
continha/usr/local/bin/
, você o chamaria comssh-support clientname
. Além disso, supondo que você tenha criado ossupport
user como/home/ssupport
, crie/home/ssupport/.ssh/id_rsa_clientname
e/home/ssupport/.ssh/id_rsa_clientname.pub
como o par de certificados e tenha uma entrada de host em/home/ssupport/.ssh/config
paraclientname
que definiu o usuário, host, porta , etc. para a máquina de destino. Você provavelmente desabilitará o encaminhamento do X11, o redirecionamento de portas, etc. explicitamente. Como de costume, o diretório/home/ssupport/.ssh
precisaria ser protegido com permissões0700
. -
Conceda a cada membro de suporte sua própria conta de usuário local e peça a cada pessoa que use sua própria chave ssh privada para acessar os servidores do cliente. Quando uma pessoa deixa o grupo de suporte, você remove a chave ssh dos servidores do cliente. Isso significa que você não precisa mais se preocupar em impedir que sua equipe saiba a chave ssh privada.