Em algum momento no passado, sempre que eu tentava uma ssh
conexão com um servidor sem especificar a senha, ssh
eu tentava todas as chaves, ssh-agent
a ponto de, se houvesse muitas chaves, meu endereço IP ser bloqueado por muitas falhas de conexão.
O comportamento parece ter mudado, pois mesmo que haja uma única chave válida na ssh-agent
lista, tenho que incluí-la no comando, por exemplo ssh -i ~/.ssh/alternate-key user@host
.
Isso se deve a alguma alteração na configuração ou a uma alteração no comportamento do ssh
próprio executável?
Usar a
-i
opção faz com que ossh
comando use a chave diretamente, ignorando o agente. A necessidade de usar essa opção sugeriria que o agente não está funcionando como esperado.Você tem certeza de que sua
SSH_AUTH_SOCK
variável de ambiente aponta para o socket do agente correto? Por exemplo, o Debian temgpg-agent
que também pode atuar como um agente SSH (com comportamento um pouco diferente do OpenSSHssh-agent
), e em algumas versões do Debian (e possivelmente outras distribuições relacionadas?) ele pode até ser habilitado por padrão se instalado, dependendo da escolha do ambiente de desktop.Pode até haver vários agentes SSH concorrentes iniciados como parte da sua sessão de login. Por causa da semântica da variável de ambiente, isso geralmente significa que o agente iniciado mais recentemente "ganha".
Se o caminho do soquete do agente (na
SSH_AUTH_SOCK
variável de ambiente) terminar com.../agent.<PID>
, então o soquete provavelmente foi criado pelo OpenSSHssh-agent
ou você está usando o encaminhamento de agente por uma sessão SSH e o PID aponta para osshd
processo filho que iniciou sua sessão atual.Se o caminho do socket do agente terminar com
.../gnupg/S.gpg-agent.ssh
, então o último agente SSH iniciado é, na verdade, o subsistema do agente SSH dogpg-agent
. Se for assim, então o~/.gnupg/sshcontrol
arquivo controla quais chaves serão usadas para negociações do protocolo SSH assistidas por agente, e quaisquer frases-senha inseridas eventualmente expirarão, resultando emsudo
um comportamento "-like" com frases-senha de chave SSH: você pode ter várias autenticações SSH em sucessão após digitar a frase-senha da chave apenas uma vez, mas se muito tempo tiver passado desde a autenticação de chave assistida por agente anterior, ogpg-agent
solicitará a frase-senha da chave novamente.Depois de ver que o comportamento era o esperado em outra conta de usuário, percebi que o
~/.ssh/config
arquivo da conta em questão tinhaIdentitiesOnly Yes
no topo do arquivo, e comentá-lo corrigiu o comportamento.Por que
IdentitiesOnly Yes
substituir o comportamento das chaves carregadasssh-agent
é algo que vou levar um tempo para pesquisar, mas deve ser perfeitamente lógico.