Quiero ejecutar un script de shell usando SSH que toma recursos de otra máquina mientras el script está en otra máquina, todo en la misma red. No quiero copiar el recurso a la máquina local.
Nota: El script de shell toma el archivo .txt como entrada
Prueba esto:
ssh USER_NAME@HOST_ADDRESS "BASH_SCRIPT_FILE_PATH"Tendrá que proporcionar una contraseña cada vez que se le solicite.
Si tiene script.sh en el servidor1 y file.txt en el servidor2, puede conectarse a través de ssh al servidor1 y luego hacer lo siguiente:
[user@server1]$ ssh user@server2 "cd mydir && cat file.txt" | ./script.shSi su secuencia de comandos está en la Máquina A, no puede ejecutarla en la Máquina B sin copiarla. Primero, copie el script en la Máquina B usando scp
[user@machineA]$ scp /path/to/script user@machineB:/home/user/pathLuego, simplemente ejecute el script
[user@machineA]$ ssh user@machineB "/home/user/path/script"Esto funcionará si le ha dado permiso de ejecución al script.
O
Prueba este..
<hostA_shell_prompt>$ ssh user@hostB "ls -la"Eso le pedirá la contraseña, a menos que haya copiado la clave pública de su usuario hostA en el archivo authorized_keys en el directorio de inicio del usuario .ssh. Eso permitirá la autenticación sin contraseña (si se acepta como un método de autenticación en la configuración del servidor ssh)