Tengo una instalación de Ubuntu 22.04.1 y estoy usando autenticación de clave pública + clave privada para iniciar sesión en ssh.
Así que aquí están los pasos que tomé.
- Primero creé un par de claves en mi mac.
- Luego fui al servidor y lo edité
/etc/ssh/sshd_config
para agregar un nuevo puerto para el inicio de sesión ssh. - Abrí ese puerto en el firewall (UFW) y cerré el 22 predeterminado.
- Hice una
ssh-copy-id -i /path/to/public/key root@host
copia de la clave pública en el servidor. - Luego
/etc/ssh/sshd_config
nuevamente para no permitir la autenticación de contraseña - Reinicié sshd y probé la conexión con root. La conexión funcionó bien.
- Volví a habilitar la autenticación de contraseña y probé ssh con uno de mis usuarios de sudo (no root) usando usuario + contraseña en el nuevo puerto. La conexión funcionó bien.
- Hice una
ssh-copy-id -i /path/to/public/key user@host
copia de la clave pública en el servidor en .ssh/authorised_keys para ese usuario en particular. El procedimiento no arrojó errores e informó que se copió una clave. Inicié sesión en el servidor y verifiqué dos veces el archivo Authorised_keys y la clave estaba allí. - Luego
/etc/ssh/sshd_config
nuevamente para no permitir la autenticación de contraseña - Reinicié sshd y probé la conexión con el usuario.Aquí es donde tengo un problemaEl usuario no puede iniciar sesión. Cuando lo intento, aparece un error:
Permission denied (publickey)
. Cuando vuelvo a habilitar la autenticación de contraseña, puedo conectarme bien pero aún sin las claves. Sólo una conexión estándar de nombre de usuario y contraseña.
El par de claves se prueba ya que uso exactamente la misma combinación para el usuario root. Quiero desactivar Permitrootlogin pero no puedo. ¿Algunas ideas?
Editar: Seguí el consejo de @Jos e hice un inicio de sesión detallado usando el usuario raíz y uno usando. Aquí están los 2 resultados. Filtré toda la información y claves confidenciales, IP, etc. y convertí los resultados en capturas de pantalla:
y el usuario (que no logra conectarse):
Editar: @steeldriver sugirió hacer un nombrei para verificar si los archivos autorizados_keys son demasiado permisivos. Aquí está el resultado:
| => namei -l ~/.ssh/authorized_keys
f: /home/spitixorismesiti/.ssh/authorized_keys
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxrwx--- spitixorismesiti spitixorismesiti spitixorismesiti
drwx------ spitixorismesiti spitixorismesiti .ssh
-rw------- spitixorismesiti spitixorismesiti authorized_keys