ssh ya no permite la autenticación de clave pública

22

Mi máquina dejó de aceptar la autenticación de la clave pública entrante. Tengo un escritorio de ubuntu 11.04 al que me meto desde una máquina de Windows. Yo uso masilla con concurso. Puedo conectar pero solo con autenticación de contraseña interactiva, no con mi clave rsa que he configurado.

Ya he verificado que la clave se encuentra en ~ / .ssh / authorized_keys. ¿Cómo soluciono esto y qué verifico?

    
pregunta Andrew Redd 19.10.2011 - 19:27

9 respuestas

28

Si la autenticación de clave pública no funciona: asegúrese de que, en el lado del servidor, su directorio de inicio ( ~ ), el directorio ~/.ssh y el archivo ~/.ssh/authorized_keys sean todos editables solo por su propietario . En particular, ninguno de ellos debe poder ser escrito por el grupo (incluso si el usuario está solo en el grupo). chmod 755 o chmod 700 está bien, chmod 770 no.

Qué comprobar cuando algo anda mal:

  • Ejecute ssh -vvv para ver una gran cantidad de resultados de depuración. Si publica una pregunta preguntándose por qué no puede conectarse con ssh, incluya esta salida (es posible que desee anonimizar los nombres de host y de usuario).
  • Si puede, consulte los registros del servidor en /var/log/auth.log .
  • Si la autenticación de clave pública no funciona, verifique los permisos nuevamente, especialmente el bit de grupo (ver arriba).
respondido por el Gilles 20.10.2011 - 18:00
9

Me encontré con lo mismo y finalmente descubrí que era porque encriptaba mi directorio personal. SSH no puede leer el archivo authorized_keys hasta que inicie sesión, por lo que básicamente lo obliga a autenticarse con contraseña primero. Consulte la sección sobre el directorio principal encriptado en el siguiente enlace:

enlace

    
respondido por el Willie Wheeler 11.07.2012 - 06:48
5

Me aseguraré de que tenga su configuración en / etc / ssh / sshd_config correcta.

Para forzar el uso de PKI solamente y para rechazar las contraseñas, busque la línea

#PasswordAuthentication yes 

en su archivo, elimínelo y configúrelo en

PasswordAuthenticate no

También leería el balance de las configuraciones para asegurar que tengan sentido. En particular, intente asegurarse de usar claves RSA ya que se sabe que DSA está comprometido.

    
respondido por el cmdematos 19.10.2011 - 20:00
3

Si verifica los permisos en los directorios, y hay un "." justo después de ellos, entonces es posible que tenga selinux habilitado, lo que interferirá con el intercambio de claves, y de manera predeterminada con la identificación manual de contraseñas.

Puede desactivar SELinux para solucionar problemas siguiendo las instrucciones aquí: enlace , o simplemente edite el archivo / etc / selinux / config y cámbielo de" imponer "a" deshabilitado ".

Espero que esto ayude.

    
respondido por el tweekd 29.07.2012 - 22:28
2

Resolví este problema al des-comentar "PasswordAuthentication yes" en / etc / ssh / sshd_config.

    
respondido por el Ben Ernest 10.12.2013 - 06:08
1

Debido a la necesidad de solucionar problemas de comunicación entre dos máquinas diferentes, tenía dos claves privadas en ~/.ssh en el lado del cliente.

En lugar de configurar cada host del servidor con la clave privada respectiva en ~/.ssh/identity como debería haber hecho, tenía la clave secundaria (y en este caso incorrecta) configurada para todos los hosts:

Host *
IdentityFile ~/.ssh/identity_b

Corrigiendo ~/.ssh/identity resolvió el problema:

Host a
IdentityFile ~/.ssh/identity_a
Host b
IdentityFile ~/.ssh/identity_b
    
respondido por el Uli Klumpp 24.04.2014 - 01:33
1

Una posible causa del problema es que tiene claves DSA, pero ahora SSH (aparentemente) está por defecto requiriendo claves RSA. Tengo el problema al actualizar a 16.04. Puede ver más aquí pero la respuesta corta es agregar lo siguiente a ~/.ssh/config :

PubkeyAcceptedKeyTypes ssh-dss
    
respondido por el DeegC 25.05.2016 - 16:34
0

Simplemente tuve el mismo problema, pero cambiar los permisos con chmod no me ayudó, ya que resultó que no tenía la propiedad del archivo ~/.ssh/authorized_keys . Puede cambiar la propiedad del directorio .ssh con:

sudo chown -R "$USER" ~/.ssh
    
respondido por el Nick 23.09.2017 - 06:30
-1

De alguna manera esto funcionó para mí:

root @ kaiser: ~ # vim / etc / ssh / sshd_config

Cambiar esta línea de sí a no  28 StrictModes no

Inténtalo de nuevo

sysadmin @ suselinux1: ~ & gt; con sysadmin kaiser Bienvenido a Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-generic i686)

Último acceso: vie nov 9 15:40:11 2012 de 10.1.3.25 sysadmin @ kaiser: ~ $ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $

    
respondido por el theunbekanntshadow 10.11.2012 - 00:06

Lea otras preguntas en las etiquetas