OpenSSH
La conexión se corta sin llegar a pedir contraseña. El servidor ha recibido la clave y no la ha aceptado, o no ha llegado a considerar ninguna.
Empieza siempre por ssh -v: la salida dice qué claves ofrece el cliente y en qué punto se rinde. Sin eso se acaba tocando a ciegas la configuración del servidor.
En el orden en que lo miramos nosotros. No es un ranking de frecuencia: no publicamos estadísticas que no hemos medido.
El cliente no está ofreciendo la clave que crees. Si tienes varias, SSH las va probando una a una y el servidor corta al llegar a MaxAuthTries, que por defecto son seis.
Comprobar
ssh -v usuario@servidor 2>&1 | grep -i 'offering\|Authentications that can continue'Corregir
ssh -i ~/.ssh/la_clave_correcta usuario@servidor
# Y para fijarlo, en ~/.ssh/config:
# Host servidor
# IdentityFile ~/.ssh/la_clave_correcta
# IdentitiesOnly yesLa clave pública no está en authorized_keys del usuario con el que entras. Cada usuario tiene el suyo: la de root no sirve para otro.
Comprobar
# En el servidor, como ese usuario:
grep -c . ~/.ssh/authorized_keysCorregir
ssh-copy-id -i ~/.ssh/la_clave.pub usuario@servidorLos permisos del directorio o del fichero son demasiado abiertos. sshd ignora authorized_keys si el grupo u otros pueden escribir en él, y no lo dice en la salida del cliente.
Comprobar
ls -ld ~ ~/.ssh ~/.ssh/authorized_keysCorregir
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod go-w ~El propietario del directorio no es el usuario. Pasa al copiar el authorized_keys con sudo desde otra cuenta.
Comprobar
stat -c '%U %n' ~ ~/.ssh ~/.ssh/authorized_keysCorregir
chown -R usuario:usuario ~usuario/.sshEl servidor tiene deshabilitada la autenticación por clave, o restringe qué usuarios pueden entrar con AllowUsers o AllowGroups.
Comprobar
sudo sshd -T | grep -iE 'pubkeyauthentication|allowusers|allowgroups|authorizedkeysfile'Corregir
# En /etc/ssh/sshd_config (o un fichero de sshd_config.d):
# PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload sshEl tipo de clave ya no se acepta. OpenSSH 8.8 desactivó por defecto las firmas RSA con SHA-1, así que una clave RSA antigua deja de funcionar tras actualizar el servidor, el cliente o los dos.
Comprobar
ssh -v usuario@servidor 2>&1 | grep -i 'send_pubkey_test\|no mutual signature'Corregir
# Lo correcto es generar una clave nueva; con ed25519 el problema no existe:
ssh-keygen -t ed25519 -C 'usuario@equipo'
# Los parches temporales no son intercambiables: el que hace falta depende
# de cuál de los dos extremos rechaza la firma.
# Si el actualizado es el cliente, en ~/.ssh/config:
# PubkeyAcceptedAlgorithms +ssh-rsa
# Si el actualizado es el servidor, en /etc/ssh/sshd_config:
# PubkeyAcceptedAlgorithms +ssh-rsa
# Una opción en el cliente no hace que un servidor 8.8 acepte lo que ha
# desactivado.El log del servidor es donde aparece el motivo real. «Authentication refused: bad ownership or modes for directory» confirma que es un problema de permisos; en el cliente ese caso se ve igual que una clave que no está.
Los comandos de esta página se ejecutan en tu servidor y algunos modifican la configuración: léelos antes de pegarlos. Las rutas y los nombres de servicio varían entre distribuciones. Así se elabora este catálogo.
Soporte Linux y DevOps en español