Estoy ejecutando Mac OS X, y parece que después de SSHing en varias máquinas, usando archivos de identidad, mi 'ssh-agent' acumula muchas identidades / claves y, a veces, ofrece demasiadas a una máquina remota, lo que hace que patearme antes de conectarme:
Desconexión recibida de 10.12.10.16: 2: demasiados errores de autenticación para cwd
Es bastante obvio lo que está sucediendo, y esta página habla de ello con más detalle:
Los servidores SSH solo le permiten intentar autenticarse un cierto número de veces. Cada intento fallido de contraseña, cada clave / identidad fallida que se ofrece, etc., toma uno de estos intentos. Si tiene muchas claves SSH en su agente, es posible que un servidor SSH lo expulse antes de permitirle intentar la autenticación de contraseña. Si este es el caso, hay algunas soluciones alternativas diferentes.
Reiniciar borra el agente y luego todo vuelve a funcionar bien. También puedo agregar esta línea a mi .ssh/config
archivo para obligarlo a usar la autenticación de contraseña:
PreferredAuthentications keyboard-interactive,password
De todos modos, vi la nota en la página a la que me refería hablando sobre la eliminación de claves del agente, pero no estoy seguro de si eso se aplica en una Mac, ya que parece que se borran después de reiniciar de todos modos.
¿Hay una manera simple de borrar todas las claves en el 'ssh-agent' (lo mismo que sucede al reiniciar)?
ssh-add -l
no obtengo nada. Sissh -i ~/keyFileLocation.dsa un@remotehost
escribo, aparece un cuadro de diálogo emergente de OS X que solicita la frase de contraseña. Lo escribo y luego me conecta. Si me desconecto y luegossh-add -l
lo escribo, me muestra la identidad que acabo de usar. Después de reiniciar la computadora y escribirlossh-add -l
, está en blanco nuevamente.ssh-add -D
funcionó muy bien para borrar las claves sin reiniciar. ¡Gracias!AddKeysToAgent
opción de configuración, que está diseñada con el propósito expreso de agregar sus claves SSH al agente solo porque lo hizo a un servidor.Otra forma de limitar lo que se teclas se comparan es añadir
IdentitiesOnly yes
yIdentityFile ~/.ssh/<nameofkey>
a su/.ssh/config
archivo.fuente