Tutoriel Linux

Agente SSH no Linux: evite digitar sua senha novamente sem deixar sua chave por aí.

Débutant4 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Se você usa uma chave SSH protegida por senha, provavelmente já conhece o problema: é seguro, mas rapidamente se torna cansativo quando você precisa digitar a senha toda vez que se conecta ou toda vez que… puxaA resposta errada é remover a senha da chave. A melhor resposta, em muitos casos, é agente ssh.

agente ssh Ele mantém a chave desbloqueada na memória durante sua sessão. Você digita a senha uma vez e, em seguida, o agente responde às solicitações SSH. É conveniente, mas requer duas precauções: verificar qual agente está sendo usado e limitar a duração ao trabalhar em uma máquina compartilhada ou em um servidor administrativo.

O Tux protege uma chave SSH em um agente seguro conectado a um servidor Linux.
O ssh-agent evita a necessidade de digitar a senha novamente, mantendo a chave SSH protegida.

Verifique se o ssh-agent já está em execução.

Em muitas distribuições Linux com interface gráfica, um agente SSH já está em execução. Em SSH puro, em um servidor ou em uma sessão mínima, isso nem sempre acontece. Comece verificando a variável de ambiente usada pelas ferramentas SSH:

eco "$SSH_AUTH_SOCK"

Se a saída estiver vazia, seu shell não sabe com qual agente se comunicar. Você também pode verificar as chaves que já foram carregadas:

ssh-add -l

Se você receber uma mensagem como O agente não possui identidade.O agente responde corretamente, mas nenhuma chave foi carregada. Se o comando indicar que não é possível conectar-se ao agente, você precisa iniciar um.

Inicie o ssh-agent na sua sessão.

Para iniciar um agente no shell atual, use:

eval "$(ssh-agent -s)"

O comando define as variáveis ​​necessárias, incluindo SSH_AUTH_SOCK E SSH_AGENT_PID. Sem o avaliaçãoO agente pode iniciar, mas seu shell não recupera corretamente o ambiente. Esse tipo de detalhe é o que desperdiça tempo quando você testa muito rapidamente.

Você pode confirmar logo em seguida:

eco "$SSH_AUTH_SOCK"

Em um computador pessoal, isso geralmente é suficiente. Em um servidor compartilhado, prefiro evitar deixar um agente aberto o dia todo sem um limite de tempo.

Adicione uma chave SSH com um período de vida limitado.

Para carregar um pen drive padrão:

ssh-add ~/.ssh/id_ed25519

Você insere a senha uma única vez. Depois disso, as conexões que utilizam essa chave passam pelo agente. Para verificar o que está carregado:

ssh-add -l -E sha256

Para limitar a vida útil da chave no agente, use -tExemplo com uma hora:

ssh-add -t 1h ~/.ssh/id_ed25519

Essa é a minha configuração preferida em uma estação de trabalho administrativa. Você mantém a conveniência do agente, mas a chave não permanece disponível indefinidamente se você se esquecer de sair da sessão.

Testar uma conexão sem inserir novamente a senha.

Após carregar a chave, teste a conexão normal:

usuário ssh@servidor

Se a chave corresponder ao servidor, o SSH não solicitará a senha novamente. Caso contrário, tente novamente no modo detalhado:

ssh -v usuário@servidor

Você verá qual chave é oferecida, se o agente responde e onde a conexão está bloqueada. Se o problema for mais provavelmente com o serviço SSH do lado do servidor, também publiquei um guia para isso. Reinicie o SSH no Ubuntu corretamente. e outro para Reinstale o SSH quando ele parar de responder..

Remova as chaves do agente.

Para remover uma chave específica:

ssh-add -d ~/.ssh/id_ed25519

Para esvaziar todas as chaves carregadas:

ssh-add -D

Se você iniciou o agente manualmente e deseja pará-lo:

ssh-agent -k

Não confunda esses comandos com a exclusão do arquivo de chave em ~/.sshAqui, você está apenas removendo a chave da memória do agente.

Tenha cuidado ao transferir agentes SSH.

Transferência de agente, geralmente ativada com ssh -AIsso permite que uma máquina remota use seu agente local para redirecionar o tráfego para outro servidor. É útil em alguns ambientes, mas eu evitaria usá-lo por padrão.

Se o servidor intermediário for comprometido, sua chave privada não será copiada, mas o agente ainda poderá ser acessado enquanto a sessão estiver aberta. Para um host bastion ou uma máquina que você não controla totalmente, opte por uma chave dedicada, uma duração limitada ou uma configuração SSH mais restritiva.

Para manter uma sessão longa sem perder o seu trabalho, tela no Linux Atende a outra necessidade: manter uma sessão administrativa aberta no servidor. Isso não substitui o agente sshmas as duas ferramentas se complementam bem.

O acordo que eu manteria.

Não remova a senha das suas chaves SSH para economizar alguns segundos. Em vez disso, carregue a chave em agente ssh, verifique as chaves ativas com ssh-add -llimitar a duração com ssh-add -t Quando o contexto for sensível, esvazie o agente ao final da intervenção.

As páginas de manual do agente ssh, ssh-add E ssh Eles detalham as opções disponíveis. Não é preciso memorizar tudo. O importante é manter uma chave segura, mas que possa ser usada sem transformar cada conexão em uma tarefa árdua.

sudo apt update && sudo apt upgrade