ssh no funciona con sí

ssh no funciona con sí

Últimamente tuve que resolver un caso marginal en el que tuve que agregar una cantidad de huellas digitales del servidor a las de un usuario known_hosts(la autorización se realiza con un par de claves). Pensé que la solución más sencilla sería simplemente llamar.

yes yes | ssh *login@host*

. Sorprendentemente (al menos para mí), esto no funciona: sshtodavía pregunta si desea agregar la huella digital y requiere entrada manual.

Mi pregunta es: ¿por qué es este el caso, como en,¿Cuál es el mecanismo subyacente a este comportamiento??

Respuesta1

Para este mensaje, sshno utiliza elentrada estándar&salida estándartransmisiones: para evitar que el mensaje se mezcle con la entrada/salida del comando remoto. (Imagínese ejecutar ssh host cat something.tar | tar xy de repente tar xquejarse de basura en su entrada).

En su lugar, sshabre el dispositivo especial /dev/tty, que siempre apunta a su "terminal de control", escribe allí el mensaje y lee la respuesta.


Para su problema específicamente, OpenSSH viene con ssh-keyscan, una herramienta para obtener claves públicas de muchos servidores a la vez.

ssh-keyscan host1 host2 host3 >> ~/.ssh/known_hosts

(No estoy seguro de si quiso decir known_hostso si realmente lo necesita authorized_keysaquí).


En el caso general, la expectutilidad se puede utilizar para automatizar programas que normalmente realizan sus E/S a través de tty.

información relacionada