Pongamos que tengo un script en un servidor local que quiero que se ejecute en un servidor remoto en el que no existe este script:
# ll
total 4
-rwxr--r-- 1 hpddpers uxsup3 249 May 4 10:31 luns.sh
#
Para hacerlo, ejecutaré el siguiente comando:
# sshpass -p MiContraseñaSecreta -q [email protected] "bash -s" -- < luns.sh
la01wai0;/dev/sda;107.4;GB
la01wai0;/dev/sdb;53.7;GB
#
Como podemos observar, con sshpass, envío la contraseña con la que acceder en el servidor remoto y con < luns.sh especifico mi script local a ejecutar en el destino.
Acceso SFTP enviando la contraseña con SSHPASS
También podemos utilizar SSHPASS para acceder por SFTP con el usuario y la contraseña enviada por parámetros en la misma línea. Veamos un ejemplo:
[[email protected] ~]# sshpass -p test sftp -oBatchMode=no -b - [email protected] << !
> ls
> bye
> !
sftp> ls
sftp> bye
[[email protected] ~]# sshpass -p test sftp -oBatchMode=no -b - [email protected] << !
ls -la
bye
!
sftp> ls -la
drwx------ 3 test test 4096 Mar 6 08:05 .
drwxr-xr-x 33 root root 4096 Mar 6 08:05 ..
-rw-r--r-- 1 test test 18 Feb 15 2017 .bash_logout
-rw-r--r-- 1 test test 176 Feb 15 2017 .bash_profile
-rw-r--r-- 1 test test 124 Feb 15 2017 .bashrc
-rw-r--r-- 1 test test 500 Nov 27 2014 .emacs
-rw-r--r-- 1 test test 124 Feb 5 2018 .mkshrc
drwxr-xr-x 4 test test 4096 Nov 23 2017 .mozilla
sftp> bye
[[email protected] ~]#
El parámetro «-p test» indica la contraseña del usuario «[email protected]».
Y si queremos ejecutar un put por SFTP en una sola línea:
[[email protected] pced]# (echo ls; echo "put /interfases/tresoreria/CEPD/CEPD_08082019_050506.txt") | sshpass -p test sftp -oBatchMode=no -b - [email protected] >> status.log
+---------------------------------------------------------------------+
| |
| Use of this network is restricted to authorized users only. User |
| activity may be monitored and/or recorded. Anyone using this |
| network expressly consents to such monitoring and/or recording. |
| |
| BE ADVISED: if possible criminal activity is detected, these |
| records, along with certain personal information, may be provided |
| to law enforcement officials. |
| |
+---------------------------------------------------------------------+
[[email protected] pced]# cat status.log
sftp> ls
CEPD_08082019_050506.txt
sftp> put /interfases/tresoreria/CEPD/CEPD_08082019_050506.txt
Uploading /interfases/tresoreria/CEPD/CEPD_08082019_050506.txt to /home/test/CEPD_08082019_050506.txt
[[email protected] pced]#