script opciones menú hacer example como bash shell ssh ksh rsh

bash - opciones - ¿Cómo se usa ssh en un script de shell?



menú en shell script de linux (5)

Depende de lo que quieras hacer y de cómo lo uses. Si solo desea ejecutar un comando de forma remota y segura en otra máquina, solo use

ssh user@host command

por ejemplo

ssh user@host ls

Para hacer esto de manera segura, debe pedirle al usuario la contraseña durante el tiempo de ejecución o configurar las teclas en el host remoto.

Cuando trato de usar un comando ssh en un script de shell, el comando simplemente se sienta allí. ¿Tiene un ejemplo de cómo usar ssh en un script de shell?


La forma más fácil es usar un certificado para el usuario que ejecuta el script.

Una más compleja implica agregar a stdin la contraseña cuando el comando de shell lo solicita. Espere, bibliotecas de Perl, muestre al usuario el mensaje que le pide la contraseña (si es interactivo, al menos), hay muchas opciones.


Puede utilizar el comando expect para completar la información de nombre de usuario / contraseña.


~/.ssh/authorized_keys colocar su clave pública SSH en el archivo ~/.ssh/authorized_keys en el host remoto. Entonces podrá SSH a ese host sin contraseña.

Alternativamente puede usar ssh-agent . Recomendaría no guardar la contraseña en el script.


En primer lugar, debe asegurarse de haber configurado una contraseña sin contraseña (inicio de sesión de clave pública). Hay al menos dos sabores de ssh con formatos de archivo de configuración ligeramente diferentes. Consulte la página de manual de ssh en su sistema, consulte su administrador de sistema local o diríjase a ¿Cómo configuro la autenticación de clave pública? .

Para ejecutar ssh en modo batch (como en un script de shell), necesita pasar un comando que desea ejecutar. La sintaxis es:

ssh host command

Si desea ejecutar más de un comando al mismo tiempo, use comillas y puntos y comas:

ssh host "command1; command2"

Las comillas son necesarias para proteger el punto y coma del intérprete de shell. Si los dejó fuera, solo el primer comando se ejecutará de forma remota y todo lo demás se ejecutará en la máquina local.