Tengo algunas cajas en la nube que cambian su IP con frecuencia.
Estoy usando el nombre de host pero tengo que editar el archivo known_hosts cada vez que se inicia el servidor debido a este mensaje de error:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is…
Además de los riesgos de seguridad y los que están asociados con lo que quiero hacer, ¿hay alguna forma de ignorar este error o sobrescribir el archivo conocido_hosts automáticamente para que no siempre tenga que editarlo yo mismo?
ssh
bash
known-hosts
fingerprint
coneybeare
fuente
fuente
Además: solo puede intentar deshabilitar la verificación CheckHostIP para ese nombre:
fuente
Muchas de las respuestas aquí funcionarán, pero técnicamente son soluciones alternativas. OpenSSH ya tiene una característica incorporada con esto en mente:
HostKeyAlias
.En su archivo .ssh / config, agregue
HostKeyAlias <alias>
a una configuración de host:Con esto en su lugar, la conexión con el servidor
myserver.example.com
no va a usar el nombre de host o la dirección IP de la referencia local - que siempre solamente utilizar los HostKeyAlias la que se conecte a ese servidor. Para mí tiene sentido usar el nombre de host, pero por supuesto puede usar cualquier alias que desee.Las configuraciones típicas para mí para hosts dinámicos son así:
Esto también se puede usar en algunos escenarios oscuros en los que sabe que muchos de sus servidores tienen las mismas claves de host (generalmente este no debería ser el caso). Esto evitaría entradas duplicadas. En el futuro, si las claves cambian legítimamente, no tiene que reemplazar / eliminar múltiples entradas. Solo uno. Los servidores Gitlab Geo son un buen ejemplo de esto.
Con respecto a borrar el archivo known_hosts, sugeriría mirar otras preguntas / respuestas específicamente relacionadas con el mantenimiento / eliminación de entradas obsoletas de unknown_hosts. Por ejemplo, vea Cómo administrar mi archivo .ssh / known_hosts ; Estoy especialmente impresionado por la respuesta de user1953828, aunque veo que todavía no tiene muchos votos a favor. :)
fuente
Utilizo estas opciones poco fiables para solucionar este problema. (La clave pública de mi host se regenera con bastante frecuencia. Esto elimina la comprobación de IP y clave)
También puede usar esto si la clave permanece igual pero la IP cambia:
fuente
Puede configurar StrictHostKeyChecking = no en la configuración de su cliente ssh (es decir, el archivo ~ / ssh / config en la máquina desde la que se conecta), para ignorar la advertencia.
fuente
Podría ponerlo
CheckHostIP no
en su~/.ssh/config
archivo, pero eso lo deja abierto a ataques de suplantación de identidad. Si no le preocupa eso, entonces esta configuración debería desactivar laknown_hosts
verificación.fuente
Evito agregar las huellas digitales a mi
known_hosts
archivo cuando me conecto a máquinas transitorias de AWS. Yo uso un comando comopara conectarse con ellos. No le preguntará si desea agregar la máquina "a la lista de hosts conocidos". Reemplácela
10.0.0.5
por la dirección IP de su máquina ysecret.pem
por la ruta completa de su clave Ssh. Todavía recibirá advertencias de que10.0.0.5
se ha agregado, pero realmente se ha desvanecido/dev/null
. Hago esto con la frecuencia suficiente para establecer un alias en mi~/.profile
Reservo los
ssh [email protected]
comandos de tipo para máquinas en las que tuve problemas para verificar la huella digital.fuente
Hacer conocido_hosts de solo lectura.
fuente