Después de actualizar a Fedora 23, la autenticación sin contraseña (basada en clave pública) ya no funciona en SSH: al intentar SSH a algún host, solicita mi contraseña en el host remoto. No consigo que use mi clave privada SSH. Todo funcionó bien con Fedora 22.
Mi clave pública es una clave DSA ( ~/.ssh/id_dsa.pub
). Estoy usando OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
¿Cómo consigo que la autenticación sin contraseña vuelva a funcionar correctamente?
ssh -Q
. Esto está preguntando cómo solucionar un fallo de SSH. Encontré parte del material en superuser.com/q/962918/93541 y en otros lugares útiles para identificar esta solución, pero la respuesta allí describe cómo usarssh -Q
y no responde a esta pregunta (por ejemplo, no explica cómo solucionarlo). este problema), así que en mi opinión no es un dup. El de Unix y Linux es muy similar; Desearía haberlo visto antes. ¡Gracias otra vez por los enlaces!Respuestas:
Este es el resultado de la actualización a OpenSSH 7.0. Como dicen las notas de la versión de OpenSSH 7.0 , "La compatibilidad con el host ssh-dss y las claves de usuario está deshabilitada de forma predeterminada en tiempo de ejecución".
La solución es agregar la siguiente línea
~/.ssh/config
en cada máquina cliente (cada máquina donde ejecuta el cliente SSH):Si el servidor usa OpenSSH 7.0 o posterior, también deberá agregar esta línea
/etc/ssh/sshd_config
en cada máquina del servidor.Alternativamente, puede generar una clave SSH completamente nueva y agregarla a su archivo Author_keys en cada servidor en el que quiera iniciar sesión. Le recomiendo que use RSA , para evitar problemas de compatibilidad. No recomiendo ECDSA, ya que aparentemente gnome-keyring-daemon no recoge automáticamente las claves SSH del tipo ECDSA.
Comentario editorial: ¿Por qué la gente de OpenSSH deshabilitó las claves DSA? No lo sé. Hasta donde puedo determinar, no hay nada de malo en la seguridad de las claves DSA (ssh-dss). La página web de OpenSSH afirma que ssh-dss es débil, pero que yo sepa, ssh-dss de 1024 bits no es más débil que RSA de 1024 bits, y las claves RSA de 1024 bits no están deshabilitadas.
fuente
Mis dos centavos
Como editar
.ssh/config
archivos para permitir que esto parezca no ser una buena idea, sugieroCree una nueva clave, utilizando la herramienta reciente.
Luego copie la nueva clave pública (en el clipbord)
Inicie sesión por última vez utilizando la clave anterior:
Luego actualice
@host
elauthorized_keys
archivo, agregando su nueva clave pública y cierre la sesiónpaste, entonces Ctrl+D
Inicie sesión con una nueva clave utilizando la sintaxis predeterminada:
Luego actualice
@host
elauthorized_keys
archivo, eliminando su antigua clave pública (la usosed -e 1d -i .ssh/authorized_keys
cuando mi antigua clave pública está en línea con1
este archivo).Sugiero actualizar su servidor ssh si puede.
Prueba si la vieja clave ya no funciona.
Esto no tiene que funcionar ;-)
Incluso podría volver a verificar si todo está bien:
fuente
~/.ssh/config
no es una buena idea.~/.ssh/config
per se sino con la idea de permitir DSA. Gracias por la explicación. Eso tiene sentido. (Creo que ya he abordado en mi respuesta y en mis comentarios por qué considero que esa recomendación es desconcertante, pero no intentaré debatir eso aquí.).config
le permite ejecutarssh
durante un tiempo prolongado e incluso puede confundirse si utiliza un algoritmo débil . Al usar-o Pubkey...
en la línea de comando, no perdonarás que haya algo para actualizar .