Problemas de verificación de clave de host SSH con VIP


8

Tenemos 2 servidores de producción en un VIP, solo uno está en uso a la vez, por ejemplo:

myservice.mycompany.uk normalmente apunta al servidor1, en caso de que el servidor1 falle, los cambios apuntan al servidor2.

Hay algunos otros servidores que necesitan enviar archivos a myservice.mycompany.uk a través de SFTP y debería ser totalmente transparente para ellos si realizamos la conmutación por error al servidor2.

El problema es que, si bien las claves están instaladas tanto en el servidor1 como en el servidor2, los otros servidores tendrán problemas de verificación de la clave del host, porque la clave del host del servidor2 es diferente a la clave del servidor1. Esto provoca un error de seguridad (ya que la comprobación estricta está activada), y una línea debe eliminarse de known_hosts para que funcione.

Nuestro técnico de TI ha sugerido que podemos crear 2 entradas en conocido_hosts, una con la clave para servidor1 y otra con servidor2, ambas con el host myservice.mycompany.uk.

¿Es probable que eso funcione? ¿Cómo se puede hacer esto con masilla / psftp en Windows? Dado que la clave de host se almacena en el registro y los nombres duplicados no están permitidos. ¿Existe una mejor manera, por ejemplo, podemos obligar a los servidores a tener la misma clave de host?

Respuestas:


15

Para que sea más fácil para los clientes, simplemente usaría la misma clave de host en ambas máquinas. Simplemente copie una de las claves (la del servidor actualmente en uso) en la segunda máquina. Las llaves están adentro /etc/ssh/ssh_host_*.

Otra opción es desactivar la comprobación de la clave del host en los clientes. Esto se puede hacer ajustando su ssh_configuso:

Host myservice.mycompany.uk
    StrictHostKeyChecking

Desactivar la comprobación de la clave del host debilita el uso de SSH para transferir estos archivos, duplicar la clave del host es probablemente la mejor solución.
James Yale

1
Desactivar la comprobación de la clave del host no significa que la comunicación no esté encriptada correctamente, que es el punto principal de SSH. Dicho esto, como dije, yo mismo prefiero la primera solución.
phaphink

En la versión del cliente (con diferentes claves de servidor) de la solución, también necesita agregar UserKnownHostsFile=/dev/nullmás, la primera clave irá a los hosts conocidos y la segunda generará una advertencia de "hombre en el medio".
Nils

@Nils esto no es necesario; la configuración StrictHostKeyChecking yeshará que el archivo UserKnownHosts se ignore a favor del archivo de hosts conocidos del sistema. Entonces, cualquier cosa que modifique UserKnownHosts es bastante inútil.
Michael Lowman

Ok, tengo que aclarar esto más: hablo sobre el caso en el que tienes dos claves de servidor diferentes. Allí debe especificar StrictHostKeyChecking noy establecer adicionalmente UserKnownHostsFilea / dev / null. En ese caso, se aceptarán todas las claves de host (haciendo que este nivel de seguridad sea inútil, por supuesto).
Nils

0

Archivé esto de esta manera, el usuario root ejecutó un script a las 23:00 PM que se conecta a la dirección IP lógica del clúster de Linux, por lo que en caso de conmutación por error de la dirección IP, mi huella digital ssh cambia

echo "StrictHostKeyChecking no" >> /root/.ssh/config 
echo "UserKnownHostsFile /dev/null" >> /root/.ssh/config

De esta manera, la configuración es solo para root

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.