Solución 1:
Puedes usar ssh -o StrictHostKeyChecking=no para desactivar la verificación known_hosts momentáneamente. Pero yo desaconsejaría esto. Realmente debería verificar por qué la clave de host ha cambiado.
Otra opción es agregar una entrada específica a su ~/.ssh/config para el anfitrión en cuestión. Este podría ser un enfoque válido si tiene un determinado host que genera nuevas claves de host cada vez que se reinicia y se reinicia por una razón válida varias veces al día.
Host <your problematic host>
StrictHostKeyChecking no
Solución 2:
Para ignorar por completo su archivo de hosts conocidos en un entorno POSIX, configure el GlobalKnownHostsFile y UserKnownHostsFile opciones a /dev/null :
ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null example@unixlinux.online
Configuración del StrictHostKeyChecking=no le permitirá conectarse pero SSH aún mostrará una advertencia :
ssh -o StrictHostKeyChecking=no example@unixlinux.online
Como han señalado otros, probablemente sea mejor abordar el problema subyacente. Podría considerar la autenticación de certificado SSH para verificar hosts, por ejemplo.
Solución 3:
Si ha reinstalado el servidor y, por lo tanto, la identificación ha cambiado, solo debe eliminar la línea 155 especificada de /Users/alexus/.ssh/known_hosts y adelante.
Si cambia entre diferentes redes privadas, debe usar nombres de host para conectarse, ya que el cliente ssh también guardará claves según el nombre de host. Agregue algo como esto a su /etc/hosts :
10.52.11.171 server1
10.52.11.171 server2
y luego usa ssh server1 cuando está conectado a la subred 1 y ssh server2 cuando está conectado a la subred2. De esta forma, ambos servidores pueden tener claves de host diferentes.
Solución 4:
-o StrictHostKeyChecking=no solo funciona si el host no está ya presente en el archivo unknown_hosts.
Creo que es más limpio (sin advertencias), si espera que la clave de los hosts cambie, tal vez debido a la clonación de máquinas virtuales, para obligar a ignorar ese tipo de hosts como este:
# Handle possible SSH key changes
host_key=$(ssh-keyscan -t rsa ${host_ip})
grep "${host_key}" ~/.ssh/known_hosts >/dev/null || {
ssh-keygen -R ${host_ip}
echo ${host_key} >> ~/.ssh/known_hosts
}
# connect as normal way
ssh example@unixlinux.online${host_ip} "hostname"
Solución 5:
Algunas personas dicen que no está bien, que no debes hacer esto y demás, pero también necesito esto para probar un par de dispositivos integrados una y otra vez. Debes deshabilitar StrictHostKeyChecking=no , esto es correcto, pero también restablece el archivo de hosts conocidos a /dev/null . Aquí un ejemplo con inicio de sesión automático y ps en el dispositivo remoto.
sshpass -p pass ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null example@unixlinux.online 'ps ax'