2011-06-04 10 views

Respuesta

8

ssh se puede utilizar para ejecutar un comando, en lugar de iniciar un shell de inicio de sesión interactivo remoto. Por ejemplo:

ssh [email protected] ls 

iniciará sesión en host y ejecutar el comando ls.

Puede utilizar esto dentro de una escritura del golpe de forma normal:

#!/bin/bash 

# do local commands 

ssh [email protected] "ls; grep something file.txt; copy a b" 

# do more local commands 

De página del manual de ssh, el estado de salida será el estado de salida del comando remove o 255 si se produjo un error.

+0

El problema es que es una larga lista de comandos (155 líneas). – emurad

+1

Algunas opciones: (1) coloque los comandos en un archivo separado, use 'scp' para copiar los comandos en el servidor remoto y ejecútelo o (2) ponga los comandos en una variable dentro del script bash y simplemente ejecútelo como 'ssh user @ host" $ COMMAND "'. Puede leer un archivo en COMMAND en lugar de tenerlo todo en línea: 'COMMAND = $ (cat remote_cmds.sh)' –

+0

Por qué no funcionan: ssh [email protected] "EEEEE = 'eeeesssse' echo '$ EEEEE ' echo \ "$ EEEEE \" " – emurad

1

pequeña variación con el formato de código más fácil de usar y sshbash -s:

echo ' 
globchar="*" 
ls -1d $globchar 
ls -ld $globchar 
' | 
ssh [email protected] "bash -s --" 
1

Como otros han dicho, puede utilizar ssh. Sin embargo, si está ejecutando un script, puede configurar ssh para iniciar sesión sin una contraseña. Puede hacerlo configurando una clave pública/privada a través del comando ssh-keygen. Cambie también el permiso de los archivos clave (id_rsa, id_rsa.pub) como 600 para la clave pública y 400 para la clave privada para la seguridad de la modificación. chmod 600 id_rsa.pub; chmod 400 id_rsa

En su sistema, ejecuta ssh-keygen para generar las claves pública y privada. En Unix/Linux/Mac, estos se encuentran en el directorio $HOME/.ssh. (¡Mantenga la frase de contraseña en blanco!). Luego, desea crear un archivo llamado authorized_keys en el equipo remoto bajo el directorio $HOME/.ssh y copiar allí su clave pública. No es necesario generar claves de cifrado en m/c remoto.

Ahora, cuando usted hace ssh o scp en la máquina remota, no tiene que dar la contraseña.

Cuestiones relacionadas