sshpass is a useful tool used for running ssh authentication in non-interactive mode. Using sshpass you can use passwords to ssh or scp command without interactions, which helps to utilize in shell scripts. Instead of using this we recommend using key based authentication.
Install sshpass
The sshpass package is available in default packages repositories for most of the latest operating systems. You can use following commands to install it on your system.
Advertisement
On Debian:
sudo apt install sshpass
On CentOS:
yum --enablerepo=epel -y install sshpass
Using sshpass
sshpass uses SSHPASS environment variable to store user passwords. You need to first SSHPASS variable with password then use this command. Here is a simple shell script using sshpass.
1 2 3 | export SSHPASS=ry3AvbWO0oupYX9HCMzp0Axx sshpass -e scp testfile.csv user@example.com:/uploads/ |
You can also run ssh command as following with sshpass.
1 | sshpass -e ssh user@example.com |