Tengo un par de claves pública/privada RSA en mi computadora portátil; en una máquina remota tengo dos cuentas A y B, cada una de las cuales tiene la clave pública en /home/{A,B}/.ssh/authorized_keys. Con la clave privada cargada en ssh-agent en mi computadora portátil, puedo enviar ssh a A@remote sin contraseña, pero B@remote me solicita una contraseña.
No tengo ~/.ssh/ssh_config en mi computadora portátil. El usuario A aún no tiene contraseña; B lo hace. Cambiar /etc/ssh/ssdh_config a "PasswordAuthentication no" solo da como resultado una "clave pública ssh denegada" para el usuario B.
El servidor está en Ubuntu 9.10 Karmic, con OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 de octubre de 2007. La computadora portátil es Ubuntu 10.04 con OpenSSH_5.3p1.
Respuesta1
Resultó que la carpeta $HOME/.ssh del usuario roto tenía el permiso de "escritura" habilitado para el grupo. chmod go-rwx $HOME/.ssh
solucionó el problema.
Respuesta2
En mi caso, además de los permisos para el .ssh/authorized_keys
archivo (ver respuesta de @tobym), la causa del problema fue una cuenta bloqueada.
Depurando en el servidor con sudo tail -f /var/log/auth.log
show
User <account-name> not allowed because account is locked
La cuenta se bloqueó porque no establecí ninguna contraseña porque solo quería autenticación basada en claves y sin contraseña. La solución fue
sudo passwd <account-name>
y asigne alguna contraseña compleja aleatoria.