SSH falla con un error de clave de host al enviar un comando, pero funciona sin uno

SSH falla con un error de clave de host al enviar un comando, pero funciona sin uno

Estoy configurando un servidor para poder admitir SSH con autenticación de clave de host que actualmente maneja un servidor antiguo y moribundo. A partir de ahora puedo conectarme exitosamente con SSH e interactuar en la terminal como de costumbre. Sin embargo, si incluyo un comando o coloco SSH en un comando RSync, aparece el error "Error en la verificación de la clave del host".

Entonces este comando funciona:

ssh -o StrictHostKeyChecking=no -i /cygdrive/C/keys/id_rsa [email protected]

Mientras que lo siguiente no:

ssh -o StrictHostKeyChecking=no -T -i /cygdrive/C/keys/id_rsa [email protected] ssh 192.168.0.2 mkdir -p /mnt/storage/new_folder

Sin embargo, ambos funcionan cuando apuntan al servidor más antiguo, por lo que los comandos en sí deberían estar bien. Además, si logro no cambiar los comandos, nos permitiría ser compatibles con versiones anteriores.

Incluyo la configuración de sshd_config en el nuevo servidor (que se configuró para imitar el servidor anterior) a continuación en caso de que ayuden, los únicos elementos aquí son los que no fueron comentados.

HostbasedAuthentication no
RhostsRSAAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM sí
X11Forwarding sí
PrintMotd no
PrintLastLog sí
TCPKeepAlive sí
AcceptEnv LANG LC_*
Subsistema sftp /usr/lib/openssh/sftp-server
PubkeyAuthentication sí
RSAAuthentication sí
LoginGrace Tiempo 2m
PermitRootLogin sí
StrictModes sí

El nuevo servidor es Ubuntu 17.10 (se actualizará a LTS cuando salga el próximo). El servidor antiguo es Debian 6.0.6.

Editar: Olvidé mencionar que este error también ocurre cuando uso RSync con '-e'. Sin embargo, descubrí que en el comando RSync, puedo solucionar el problema usando [email protected]:/mnt/storage/new_folderel parámetro de ruta remota. Si elimino "nombre de usuario @", aparece el error nuevamente. Nuevamente, la versión defectuosa funciona bien en el servidor anterior, solo falla con el servidor nuevo. También tenga en cuenta que este es un código heredado, por lo que si puedo hacer que los comandos antiguos funcionen como están, me ahorrará mucho tiempo al enviar actualizaciones.

Respuesta1

Bien, estás sentado en el host A (sin especificar) y, cuando ejecutas el comando 1:

ssh -o StrictHostKeyChecking=no -i /cygdrive/C/keys/id_rsa [email protected]

y obtienes un shell interactivo en el host B (192.168.0.2). Pero cuando ejecutas el comando 2:

ssh -o StrictHostKeyChecking=no -T -i /cygdrive/C/keys/id_rsa [email protected] ssh 192.168.0.2 mkdir -p /mnt/storage/new_folder

(del host A), aparece un error.

Bien, ejecute el comando 1 desde el host A y obtenga un shell interactivo en el host B. Ahora, en el host B, ejecute el comando 2b:

ssh 192.168.0.2 mkdir -p /mnt/storage/new_folder

¿Lo que sucede? Si esto también falla, entonces su problema no es que "SSH falla con un error de clave de host al enviar un comando, pero funciona sin uno", su problema es que el host B no puede comunicarse con ssh a sí mismo o, más específicamente, ese "usuario". ”en el host B no está configurado para poder realizar ssh al host B.

Y, para completar, ¿qué sucede si ejecuta el comando 2c?

ssh -o StrictHostKeyChecking=no -T -i /cygdrive/C/keys/id_rsa [email protected]  mkdir -p /mnt/storage/new_folder

(del anfitrión A)?

información relacionada