¿Cómo pasar las claves de host ssh?


17

Estoy tratando de actualizar mi servidor ssh de claves RSA de 2048 bits a claves más grandes, ya que las recomendaciones son eliminar gradualmente las claves de 2048 bits pronto.

Generé una nueva clave, luego la agregué a la configuración sshd, de esta manera:

HostKey / etc / ssh / ssh_host_rsa_key             (antigua clave de 2k-bit primero) 
HostKey / etc / ssh / ssh_host_rsa4096_key         (nueva clave más grande 2da )

Después de reiniciar sshd, ingresé al host, no recibo la advertencia de cambio de identificación, sin embargo, el nuevo tampoco se almacena en caché ~/.ssh/known_hosts. Si pongo las líneas en el orden inverso, recibo la advertencia de cambio de identificación. De manera similar, cuando agrego una clave ed25519, no importa en qué orden la coloque, el cliente no agrega la nueva clave al archivo de hosts conocido.

Esto parece imposibilitar la renovación de la clave del host SSH; sin embargo, es difícil de creer que ese sea realmente el caso, ya que la seguridad requiere rutinariamente actualizar las claves.

Sé que puede intercambiar la clave, luego cada cliente debe ejecutar ssh-keygen -Rpara eliminar la clave anterior, luego verificar y aceptar manualmente la nueva clave, pero eso es un verdadero dolor, especialmente si tiene muchos clientes que se conectan o no administran Todos los clientes. Sin mencionar que si no administra a los clientes, hay una muy buena posibilidad de que no verifiquen la clave del host y simplemente presionen Y, por lo que el intento de mejorar la seguridad probablemente lo abrirá a personas los ataques del medio en su lugar.

¿Hay alguna forma de hacer que las actualizaciones de clave de host SSH funcionen? Es decir, los clientes deben aprender la nueva clave más segura (y con suerte también desaprender la clave obsoleta). Y sin dar la clave de host cambió la advertencia de hombre en el medio.


Por favor, eche un vistazo a esto . Si bien no proporciona una solución para lo que desea en este momento, podría ayudarlo a alcanzar sus objetivos finales en el futuro.
rda

Respuestas:


14

La rotación de la clave de host es compatible desde OpenSSH 6.8 (tanto el cliente como el servidor agregan soporte en esta versión).

Entonces el proceso debería funcionar así:

  • Genere y agregue nuevas claves con la opción HostKey newkey(después de las existentes) a la/etc/ssh/sshd_config
  • Reiniciar sshd
  • Los clientes tienen que configurar UpdateHostKeys yessu configuración (globalmente o por host)
  • Los clientes que se conectan recogerán todas las claves nuevas.
  • Después de un tiempo (¿meses?) Puede eliminar las claves antiguas sshd_configy reiniciarsshd
  • Los clientes (que se conectaron durante el período de transición) ya tendrán las nuevas claves (las antiguas no se eliminarán, que es el único problema aquí) y no mostrarán la advertencia de ataque MitM.

Los nuevos clientes suficientes podrán recoger las nuevas claves. Esta función no está habilitada de manera predeterminada, probablemente porque es bastante nueva y pronto mostró cierta consideración de seguridad. Pero en estos días, debería estar bien usarlo.


-4

sshd siempre usa la primera línea, así que bórrala, luego reinicia sshd.


1
... que da como resultado que la clave de host aterradora haya cambiado la advertencia. Tratando de evitar eso, haciendo que los clientes aprendan la nueva clave (y eliminen la antigua).
derobert

Tienes razón. No puede usar 2 teclas diferentes a la vez. SSL no es TLS. No hay una característica clave para agregar que solo esté cambiando.
Ipor Sircer

44
No es ni SSL ni TLS. El protocolo admite múltiples claves de host; por ejemplo, solía ser que todos tenían claves RSA y DSA. Ahora, por lo general, son claves ED25519, ECDSA y RSA.
derobert
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.