Estou executando o Mac OS X e parece que, após o SSHing em várias máquinas, usando arquivos de identidade, meu 'ssh-agent' cria muitas identidades / chaves e, às vezes, oferece muitas para uma máquina remota, fazendo com que elas me inicie antes de conectar:
Desconexão recebida de 10.12.10.16: 2: muitas falhas de autenticação para cwd
É bastante óbvio o que está acontecendo, e esta página fala sobre isso em mais detalhes:
Os servidores SSH permitem apenas tentar autenticar um certo número de vezes. Cada tentativa de senha com falha, cada pubkey / identidade com falha oferecida, etc, realiza uma dessas tentativas. Se você possui muitas chaves SSH em seu agente, pode descobrir que um servidor SSH pode expulsá-lo antes de permitir a tentativa de autenticação por senha. Se for esse o caso, existem algumas soluções diferentes.
A reinicialização limpa o agente e tudo volta a funcionar bem. Também posso adicionar esta linha ao meu .ssh/config
arquivo para forçá-lo a usar a autenticação de senha:
PreferredAuthentications keyboard-interactive,password
De qualquer forma, vi a nota na página que referi falar sobre a exclusão de chaves do agente, mas não tenho certeza se isso se aplica a um Mac, pois elas parecem ter sido limpas 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)?
ssh-add -l
não recebo nada. Se eu digitarssh -i ~/keyFileLocation.dsa un@remotehost
, recebo uma caixa de diálogo pop-up do OS X solicitando a senha. Eu digito e depois me conecta. Se eu desconectar e depois digitar,ssh-add -l
isso mostra a identidade que acabei de usar. Depois de reiniciar o computador, digitessh-add -l
-o novamente em branco.ssh-add -D
funcionou muito bem para limpar as chaves sem reiniciar. Obrigado!