it-swarm-es.com

¿Por qué no funciona el inicio de sesión automático a través de ssh con allowed_keys?

He creado un par de claves dsa público/privado. Puse la clave pública en el servidor en

~/.ssh/authorized_keys

Todo está configurado como mi otro servidor, pero parece que el servidor simplemente ignora mis esfuerzos.

11
Magnar

Aunque es posible que su problema ya haya sido resuelto por otras respuestas, me he bloqueado de suficientes máquinas para no validar los cambios de sshd_config antes de cerrar sesión, por lo que he creado el siguiente proceso que podría ser útil para la depuración futura de los cambios de configuración de sshd:

NO DESCONECTE una conexión ssh activa hasta DESPUÉS de que la prueba haya verificado que el comportamiento es el esperado.

a. verifica lo que crees que se supone que debe hacer sshd

si. verificar que la configuración sea válida usando "-t"

c. Inicie una versión detallada de 'prueba' del servidor que puede monitorear en vivo

re. Inicie una conexión de cliente de 'prueba' detallada que puede monitorear en vivo


a. verifica lo que crees que se supone que debe hacer sshd

Revise el archivo de configuración sshd sin todos los comentarios con algo como lo siguiente (asumiendo que sshd_config es el archivo correcto y en/etc/ssh)

$ grep -v "^ #"/etc/ssh/sshd_config | grep -v "^ $"

Esto simplemente aclara las cosas para que verifiquemos lo que creemos que estamos cambiando (no necesariamente si es correcto o no).

si. verificar que la configuración sea válida usando "-t"

Desde la página de manual del sshd que estoy usando,

-t Modo de prueba. Solo verifique la validez del archivo de configuración y la cordura de las claves. Esto es útil para actualizar sshd de manera confiable ya que las opciones de configuración pueden cambiar.

Otros cambios pueden tener circunstancias más sutiles. Por ejemplo, no desactive la autenticación de contraseña hasta que esté seguro de que la autenticación de clave pública funciona correctamente.

c. Inicie una versión detallada de 'prueba' del servidor que puede monitorear en vivo

$ Sudo/usr/sbin/sshd -ddd -p 9999

Esto mantiene activa su sesión de trabajo existente, pero le brinda otra instancia de sshd para verificar sus nuevos cambios de configuración. SSHD ahora se está ejecutando en primer plano en un puerto definido por el usuario (9999 en nuestro ejemplo) y envía mucha información de depuración ruidosa que puede rastrear en/var/log/authlog (o posiblemente /var/log/auth.log dependiendo en su sistema operativo.)

re. Inicie una conexión de cliente de 'prueba' detallada que puede monitorear en vivo

Ejecute la conexión del cliente ssh en modo detallado para mostrar en su pantalla más información que podría llevarlo a depurar mejor su error.

$ ssh -vvv -p 9999 nombre-servidor

Ahora debería tener suficiente información en los archivos de registro del servidor o en la pantalla de conexión del cliente para aislar su problema.

La solución generalmente se reduce a los permisos de archivo (como lo muestran Magnar y setatakahashi)

La mejor de las suertes

14
samt

El servidor ignorará su archivo autorizado_keys si las propiedades del propietario son incorrectas. Cambiarlo a esto lo soluciona:

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
33
Magnar

$ chmod 700 ~

$ chmod 700 ~/.ssh

$ chmod 600 ~/.ssh/claves_autorizadas

Compruebe estos atributos en/etc/ssh/sshd_config

$ Sudo grep PubkeyAuthentication/etc/ssh/sshd_config

$ Sudo grep Protocol/etc/ssh/sshd_config

11
setatakahashi

Otro escollo importante ...

Si su directorio de inicio está encriptado sshd no tendrá acceso a ~/.ssh/allowed_keys ..

Ver esto respuesta

0
ApriOri