¿Cómo editarknown_hosts cuando varios hosts comparten la misma IP y nombre DNS?

¿Cómo editarknown_hosts cuando varios hosts comparten la misma IP y nombre DNS?

Regularmente hago ssh en una computadora que es una computadora con arranque dual OS X/Linux. Las dos instancias de sistema operativo no comparten la misma clave de host, por lo que pueden verse como dos hosts que comparten la misma IP y DNS. Digamos que la IP es 192.168.0.9y los nombres son hostnameyhostname.domainname

Según tengo entendido, la solución para poder conectarse a los dos hosts es agregarlos a ambos al ~/.ssh/know_hostsarchivo. Sin embargo, es más fácil decirlo que hacerlo, porque el archivo tiene hash y probablemente tenga varias entradas por host ( 192.168.0.9, hostname, hostname.domainname). Como consecuencia, tengo la siguiente advertencia.

Warning: the ECDSA host key for 'hostname' differs from the key for the IP address '192.168.0.9'

¿Existe una manera fácil de editar el known_hostsarchivo manteniendo los hashes? Por ejemplo, ¿cómo puedo encontrar las líneas correspondientes a un hostame determinado? ¿Cómo puedo generar los hashes para algunos hosts conocidos?

La solución ideal me permitiría conectarme sin problemas a esta computadora con ssh, sin importar si la llamo 192.168.0.9, hostnameo hostname.domainname, ni si usa su clave de host Linux o su clave de host OSX. Sin embargo, todavía quiero recibir una advertencia si hay un ataque real de intermediario.es decirsi se utiliza otra clave distinta de estas dos.

Respuesta1

La solución más sencilla aquí es simplemente usar las mismas claves de host para Linux y OS X. Es decir, elegir un conjunto de /etc/ssh/ssh_host_*_key*archivos y copiarlos al otro sistema operativo. Luego, la misma clave de host se presentará a un cliente SSH independientemente del sistema operativo que haya iniciado, y el cliente SSH no se dará cuenta.

Respuesta2

Como sugirió @Izzy en un comentario anterior, ssh le indica la línea ofensiva y, al eliminar esa línea (guardarla en otro lugar), aceptar la nueva clave y luego copiar la línea eliminada nuevamente, terminará con dos claves para la misma host y ssh aceptará cualquiera de los dos.

(También puede utilizar ssh-keygen -H -F <hostname>para buscar líneas en su archivoknown_hosts que coincidan con ese nombre de host. Ejecutar esto después de copiar la línea eliminada debería mostrar dos entradas).

Si alguien sabe cómo hacer que PuTTY haga lo mismo, me interesaría mucho saberlo.

Respuesta3

Encontré esto que puede ayudarte con lo que quieres lograr.

Fuente:https://stackoverflow.com/questions/733753/how-to-handle-ssh-host-key-verification-with-2-diferentes-hosts-en-el-mismo-pero

Cree un archivo de configuración en su directorio .ssh de la siguiente manera:

Host server1
  Hostname x1.example.com
  HostKeyAlias server1
  CheckHostIP no
  Port 22001
  User karl

Host server2
  Hostname x2.example.com
  HostKeyAlias server2
  CheckHostIP no
  Port 22002
  User karl

Explicación a continuación (de man ssh_config)

ComprobarHostIP

Si este indicador está configurado en "sí", ssh(1) verificará adicionalmente la dirección IP del host en el archivoknown_hosts. Esto permite que ssh detecte si una clave de host cambió debido a una suplantación de DNS. Si la opción está configurada en "no", la verificación no se ejecutará. El valor predeterminado es "sí".

Alias ​​de clave de host

Especifica un alias que se debe utilizar en lugar del nombre real del host al buscar o guardar la clave del host en los archivos de la base de datos de claves del host. Esta opción es útil para hacer túneles de conexiones SSH o para múltiples servidores que se ejecutan en un solo host.

La línea Nombre de usuario y Puerto también evita que tengas que dar esas opciones en la línea de comando, por lo que puedes usar:

% ssh server1
% ssh server2

Respuesta4

No tengo ese problema cuando me conecto a varias cajas VPS que comparten la misma IP porque cada una tiene un puerto SSH diferente (20022,30022, etc.), por lo que están registradas como hosts conocidos con claves diferentes.

¿Podría ser una solución para ti?

información relacionada