"Permission denied, please try again." con la contraseña correcta

El servidor rechazó el inicio de sesión con contraseña. El mensaje es el mismo si la contraseña es incorrecta, el usuario no existe, la cuenta está bloqueada, root no puede usar contraseña o el usuario no está en AllowUsers, porque el servidor no dice nada al cliente sobre el motivo. Comprueba el nombre de usuario con ssh -G server | grep '^user ' y luego lee el log del servidor, que sí dice por qué.

Actualizada el . Cada caso se reprodujo con OpenSSH 10.3 en macOS contra un servidor OpenSSH 10.0 en Debian 13 dentro de un contenedor desechable, incluidas las líneas del log.

Qué ves

user@server's password:
Permission denied, please try again.
user@server's password:
Permission denied, please try again.
user@server's password:
user@server: Permission denied (publickey,password).

SSH pregunta tres veces por defecto y luego imprime la última línea. La lista entre paréntesis es lo que el servidor aún acepta. Si no incluye password, o nunca te salió el prompt de contraseña, tienes otro problema: mira Permission denied (publickey).

Prueba el inicio de sesión con contraseña por separado

Esto descarta claves y agentes, y pregunta una sola vez:

ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password -o NumberOfPasswordPrompts=1 user@server

Causa 1: el nombre de usuario es incorrecto

Sin user@, SSH envía tu nombre de usuario local, o el de tu configuración:

ssh -G server | grep '^user '

Un usuario que no existe recibe el mismo prompt de contraseña y el mismo rechazo, así que parece exactamente una contraseña incorrecta. Las imágenes de la nube suelen usar ubuntu, debian o ec2-user en lugar de root.

Para fijar el usuario de un host de una vez, pon una línea User en su bloque del archivo de configuración de ssh.

Causa 2: la contraseña es incorrecta

Comprueba lo obvio: la distribución del teclado, el bloqueo de mayúsculas y los caracteres ocultos de un pegado. SSH no muestra nada mientras escribes. El prompt también importa: Enter passphrase for key pide la frase de contraseña de tu archivo de clave, mientras que user@server's password: pide la contraseña de la cuenta en el servidor.

Lee el log del servidor

Si puedes llegar al servidor de otra forma, como la consola de un proveedor, esto lo resuelve. En Debian y Ubuntu:

sudo journalctl -u ssh -n 30

En sistemas tipo Red Hat usa -u sshd. Los sistemas más antiguos registran en /var/log/auth.log o /var/log/secure.

Línea del logSignificado
Failed password for invalid user nameEse usuario no existe en el servidor, o AllowUsers lo excluye
User name from ... not allowed because not listed in AllowUsersEl usuario existe pero no está en la lista
Failed password for nameEl usuario existe y falló la comprobación de la contraseña. Es la contraseña incorrecta, o una de las causas 3 y 4
Ninguna líneaEstás llegando a otro servidor o puerto. Comprueba ssh -G server | grep -E '^(hostname|port) '

Causa 3: root no puede iniciar sesión con contraseña

El valor por defecto de PermitRootLogin es prohibit-password. Con este ajuste, sshd sigue mostrando el prompt y responde con este mensaje incluso cuando la contraseña de root es correcta, y el log dice Failed password for root. Por eso el log no revela el motivo real. Pregunta directamente a sshd:

sudo sshd -T -C user=root,host=server,addr=203.0.113.10 | grep -i '^permitrootlogin'

Un resultado de prohibit-password o su nombre antiguo without-password lo confirma. Inicia sesión como usuario normal y usa sudo, o usa una clave para root. Mira Desactivar el acceso de root.

Causa 4: la cuenta está bloqueada

sudo passwd -S name

El segundo campo es L si está bloqueada, P si tiene una contraseña utilizable y NP si no tiene contraseña. Una cuenta bloqueada da el mismo rechazo, y el log vuelve a decir solo Failed password. Desbloquéala o fija una contraseña nueva:

sudo passwd -u name
sudo passwd name

Una cuenta caducada da otro texto, Your account has expired; please contact your system administrator. Compruébalo con sudo chage -l name. Una shell nologin te deja entrar y luego imprime This account is currently not available.

Causa 5: AllowUsers, DenyUsers y sus versiones por grupo

Estas reglas rechazan a un usuario incluso con la contraseña correcta. Mira qué se aplica a ese usuario, incluidos los bloques Match:

sudo sshd -T -C user=name,host=server,addr=203.0.113.10 | grep -iE '^(allowusers|denyusers|allowgroups|denygroups)'

Recuerda revisar los archivos de /etc/ssh/sshd_config.d/. Después de editar, ejecuta sudo sshd -t y recarga el servicio.

Demasiados intentos

Los fallos repetidos pueden llevar a un síntoma nuevo: la conexión se corta antes del prompt de contraseña. Eso es una penalización o un bloqueo. Mira kex_exchange_identification y fail2ban.

Preguntas

¿Por qué SSH dice Permission denied si la contraseña es correcta?

A menudo el usuario es incorrecto, root no puede usar contraseña (PermitRootLogin prohibit-password), la cuenta está bloqueada o AllowUsers deja fuera al usuario. El log del servidor dice el motivo real.

¿Cuántos intentos de contraseña permite SSH?

El cliente pregunta tres veces por defecto (NumberOfPasswordPrompts). El servidor acepta hasta MaxAuthTries, 6 por defecto, sumando todos los métodos.

¿Un usuario incorrecto da un error distinto?

No. Un usuario que no existe recibe la misma petición de contraseña y el mismo rechazo. Solo el log del servidor muestra invalid user.

Fuentes

Más en Mensajes de error

Todas las guías