¿Por qué el inicio de sesión ssh con el mismo par de claves funciona para una cuenta pero no para la otra en la misma máquina?

¿Por qué el inicio de sesión ssh con el mismo par de claves funciona para una cuenta pero no para la otra en la misma máquina?

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/.sshsolucionó el problema.

Respuesta2

En mi caso, además de los permisos para el .ssh/authorized_keysarchivo (ver respuesta de @tobym), la causa del problema fue una cuenta bloqueada.

Depurando en el servidor con sudo tail -f /var/log/auth.logshow

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.

información relacionada