¿Cómo puedo saber si es seguro aceptar una nueva clave de host?

3

Con frecuencia estoy reconstruyendo servidores para almacenamiento y desarrollo. Me conecto a ellos con SSH para aprovisionamiento.

En el proceso, destruiré una máquina virtual, la reconstruiré y la aprovisionaré de nuevo con las nuevas secuencias de comandos.

Un pequeño problema que tengo es que mi máquina local recuerda la clave de host anterior y me advierte que ha cambiado para el nombre de host o IP después de que se haya reconstruido.

Esto es esperado y una buena cosa. Pero irritante.

Luego tengo que ssh-keygen -R la huella dactilar local e intentar conectarme de nuevo para que se me solicite aceptar una nueva.

Esto es tedioso. Así que miré y aprendí que puedo configurar algunas opciones de ssh como ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

Eso soluciona mi problema de flujo de trabajo, pero me hizo preguntarme qué tan seguro es todo el proceso en primer lugar.

Si simplemente acepto ciegamente cada huella que me envía un nuevo servidor, ¿estoy minimizando el potencial de ataque del Hombre en el Medio confiando ciegamente solo una vez y luego esperando que sea el mismo desde ese momento?

O, aparte de obtener las claves del servidor a través de otro canal antes de conectarme por primera vez, ¿hay alguna forma de cerrar ese agujero y saber que la huella digital que estoy obteniendo proviene realmente del servidor que pretendo?

    
pregunta shanemgrey 08.11.2015 - 06:05
fuente

2 respuestas

3

Un par de posibilidades:

  • Copia de seguridad y restaurar las claves. Uso un script para hacer una copia de seguridad de las claves públicas y privadas en un archivo encriptado (tar.bz2) en un servidor local a través de rsync.
  • Use un conjunto de claves privadas y reúselas en todos los sistemas, probablemente no sea una buena idea a menos que el área sea segura y las posibilidades de MITM sean escasas.
  • Utilice claves firmadas por un certificado de confianza (por ejemplo, enlace )
  • Finalmente, podría usar un sistema de administración de claves o incluso un script para extraer las huellas dactilares de un servidor central antes de intentar conectarse. Nunca lo intenté, pero tengo una anulación de script para tratar con otras cosas de SSH. En lugar de usar SSH directamente, uso este script con alias para conectarme al host de destino.
respondido por el Vasu 08.11.2015 - 07:41
fuente
0

Además de la otra respuesta, hay un tipo especial de registro DNS que puede almacenar la huella dactilar del host SSH para que la clave proporcionada pueda compararse con la del registro DNS (posiblemente utilizando DNSSEC). No sé mucho sobre esto, pero debería haber una configuración de cliente openssh para esto.

    
respondido por el multithr3at3d 08.11.2015 - 08:30
fuente

Lea otras preguntas en las etiquetas