macOS ssh ignora la opción UserKnownHostsFile

macOS ssh ignora la opción UserKnownHostsFile

Con frecuencia hago sshing a máquinas virtuales a través de un host de salto que tiene direcciones IP efímeras y, a menudo, tienen claves ssh cambiantes. No quiero que me pregunten si la clave ssh cambia ni que acepte la clave ssh.

He leído sobre las opciones StrictHostKeyChecking y UserKnownHostsFile, pero no parecen tener ningún efecto. Al pasar UserKnownHostsFile=/dev/null en la línea de comando, la clave de host ssh siempre se agrega a ~/.ssh/known_hosts (Ahora tengo docenas de entradas) y siempre me piden que acepte la clave ssh.

No quiero que este nivel de no verificación sea global, por razones de seguridad, solo para esta conexión que tengo escrita en un archivo bash.

Aquí está el comando ssh que estoy usando:

ssh  -o 'ConnectTimeout=10' \
     -o 'StrictHostKeyChecking=no' \
     -o 'UserKnownHostsFile=/dev/null' \
     -o 'CheckHostIP=no' \
     -i ~/.ssh/my_ident \
     "username@ip" \
     -J "username@jump"

Además, en caso de que la parte '=" sea el problema, probé esto pero sigo obteniendo el mismo resultado:

ssh  -o 'ConnectTimeout 10' \
     -o 'StrictHostKeyChecking no' \
     -o 'UserKnownHostsFile /dev/null' \
     -o 'CheckHostIP no' \
     -i ~/.ssh/my_ident \
     "username@ip" \
     -J "username@jump"

Estoy en macOS 10.14.4 usando OpenSSH_7.9p1, LibreSSL 2.7.3

¿Alguna idea de por qué se ignoran los parámetros -o o no hacen lo que quiero?

Respuesta1

Es posible que esto no esté relacionado con MacOS. Los parámetros como StrictHostKeyCheckingy UserKnownHostsFilesolo CheckHostIPestán relacionados con el host de destino al que se está conectando. En tu caso es ip. No tienen ningún efecto sobre el jumphost especificado como parte del -Jargumento.

Creo que no hay forma de especificar estas configuraciones para el host de salto en la línea de comando. Pero podrías agregar esos parámetros a tu ~/.ssh/configarchivo, algo como esto:

Host jump
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    CheckHostIP no

información relacionada