Suas chaves SSH devem não ser automaticamente adicionadas ao agente só porque você SSH'ed para um servidor ...
Execute ssh-add -l
para listar as chaves do agente, ssh-add -D
para limpar todas as chaves.
Estou executando o Mac OS X, e parece que depois do SSHing para várias máquinas, usando arquivos de identidade, meu 'ssh -agent ' cria muitas identidades / chaves e, às vezes, oferece muitos para uma máquina remota, fazendo com que elas me retirem antes de se conectar:
Received disconnect from 10.12.10.16: 2: Too many authentication failures for cwd
É bem óbvio o que está acontecendo e esta página fala sobre isso com mais detalhes :
SSH servers only allow you to attempt to authenticate a certain number of times. Each failed password attempt, each failed pubkey/identity that is offered, etc, take up one of these attempts. If you have a lot of SSH keys in your agent, you may find that an SSH server may kick you out before allowing you to attempt password authentication at all. If this is the case, there are a few different workarounds.
A reinicialização limpa o agente e tudo funciona OK novamente. Também posso adicionar esta linha ao meu arquivo .ssh/config
para forçá-lo a usar a autenticação de senha:
PreferredAuthentications keyboard-interactive,password
De qualquer forma, vi a nota na página que mencionei falando sobre a exclusão de chaves do agente, mas não tenho certeza se isso se aplica em um Mac, já que parecem estar desmarcadas após a reinicialização.
Existe uma maneira simples de limpar todas as chaves no 'ssh-agent' (a mesma coisa que acontece na reinicialização)?
Outra forma de limitar o que é verificado é adicionar IdentitiesOnly yes
e IdentityFile ~/.ssh/<nameofkey>
ao seu arquivo /.ssh/config
.