Copie claves ssh de un servidor a otro servidor

Copie claves ssh de un servidor a otro servidor

Tengo un servidor (supongamos que su IP es abcd) que permite a los usuarios iniciar sesión a través de ssh. Ahora quiero cambiar la máquina física manteniendo la misma ip. Para que un usuario como este siga accediendo a la nueva máquina

$sshabcd

El problema es que cada vez que un usuario intenta iniciar sesión, aparece el siguiente error de falta de coincidencia de clave ssh.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
@ ADVERTENCIA: ¡LA IDENTIFICACIÓN DEL HOST REMOTO HA CAMBIADO! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
¡ES POSIBLE QUE ALGUIEN ESTÉ HACIENDO ALGO MALO!
¡Alguien podría estar espiándote en este momento (ataque de intermediario)!
También es posible que se haya cambiado la clave del host RSA.
La huella digital de la clave RSA enviada por el host remoto es
02:dc:c6:18:1b:34:b7:1d:fa:90:ab:e1:95:48:69:84.
Por favor, póngase en contacto con el administrador del sistema.
Agregue la clave de host correcta en /home/user/.ssh/known_hosts para deshacerse de este mensaje.
Clave ofensiva en /home/user/.ssh/known_hosts:37
La clave de host RSA para antiguos alumnos ha cambiado y usted ha solicitado una verificación estricta.
Error en la verificación de la clave del host.

Sé que el usuario puede eliminar la línea n.° 37 del archivo ~/.ssh/known_hosts y la próxima vez recibirá un mensaje de sí/no. Lo que quiero es que el usuario no esté al tanto de todo este asunto del reemplazo de la máquina y solo reciba una solicitud de contraseña.

¿Como hacer eso?

Respuesta1

Comoethbellmencionado, puede copiar las claves de host actuales al nuevo servidor.

Puede encontrar las claves de su host abriendo su sshd_configarchivo (en mi cuadro Ubuntu 12.04 está /etc/ssh/sshd_config). En el archivo de configuración busque las HostKeyentradas. Estas entradas le indicarán dónde se encuentran los archivos de claves del host. Debería poder copiar estos archivos al nuevo servidor y actualizar los del nuevo servidor sshd_configpara que apunten a las claves copiadas (o simplemente sobrescribir los archivos que ya existen en el nuevo servidor).

Además, tenga en cuenta esta sección de la sshd_configpágina de manual, específicamente la parte sobre permisos:

Especifica un archivo que contiene una clave de host privada utilizada por SSH. El valor predeterminado es /etc/ssh/ssh_host_keypara la versión 1 del protocolo, /etc/ssh/ssh_host_dsa_keyy /etc/ssh/ssh_host_ecdsa_keypara /etc/ssh/ssh_host_rsa_keyla versión 2 del protocolo. Tenga en cuenta que sshd(8) se negará a utilizar un archivo si es accesible en grupo o en todo el mundo. Es posible tener varios archivos de claves de host. Las claves “rsa1” se utilizan para la versión 1 y “dsa”, “ecdsa” o “rsa” se utilizan para la versión 2 del protocolo SSH.

Respuesta2

Si tuviera la clave de host original, podría restaurarla y esto detendría el error.

O puede desactivar StrictHostKeyChecking en su archivo de configuración sshd.

... Hacer esto, sin embargo, es una idea terrible, terrible. Si hay una manera de ejecutarlo ssh-keygen -R server.example.comen las máquinas cliente, esa sería la mejor manera, porque desactivar la verificación de la clave del host es como decir: "Oye, atácame". Me dan ganas de oscuridad cuando las cosas cambian, pero la seguridad debería ser la prioridad número uno sobre los cambios que oscurecen.

Respuesta3

Puedes probarlo así

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"' 

Tenga en cuenta que si la carpeta .ssh aún no existe, el comando anterior fallará. Además, podría ser mejor al crear el archivo establecer un permiso mínimo posible (básicamente lectura y escritura solo para el propietario). Aquí hay un comando más avanzado:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'

Para obtener más información sobre este problema, debe acceder a este sitio web:Error de cambio de clave de host SSH

información relacionada