twitter
Categories:- Unix Commands

sshpass Command : Non-interactive Password Authentication with SSH

Overview :

 

Linux system Admins  normally login to the linux  servers either supplying a password, or using keybased authentication. sshpass is a tool which allows us to automatically supply password to the command prompt so that automated scripts can be run as desired by users. sshpass supplies password to ssh prompt using a dedicated tty , fooling ssh to believe that a interactive user is supplying password.

 
Some of the common uses of sshpass :

 

1.taking backups to a remote server
2.executing commands on systems at a specified time.

 

SSHPASS Installation :

 

1) Centos Based distributions

 

Setup the EPEL repository from https://fedoraproject.org/wiki/EPEL and then run
As root run

 

yum -y install sshpass

 

2) Ubuntu/Debain based distributions


As root run

 

apt-get install sshpass

 

3)Compile & install from the source

 

#wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
#tar -zxvf sshpass.tar.gz
#cd sshpass-1.05/
#./configure
# make
# make install
#which sshpass
/usr/local/bin/sshpass

 

Getting Help :

 

# sshpass -h

 

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename   Take password to use from file
-d number     Use number as file descriptor for getting password
-p password   Provide password as argument (security unwise)
-e            Password is passed as env-var "SSHPASS"
With no parameters - password will be taken from stdin

-h            Show help (this screen)
-V            Print version information
At most one of -f, -d, -p or -e should be used

 

Example:1 Supply Password with SSH

 

# sshpass -p 'password' ssh ldap.nextstep4it.com -l root -o StrictHostKeyChecking=no

 

Where :

 

password' is the password of your server(ldap.nextstep4it.com). 'StrictHostKeyChecking=no'  is  used to control logins to machines whose host key is not known or has changed

 

Example:2 To run some command on the remote server viz checking uptime and uname

 

# sshpass -p 'password' ssh ldap.nextstep4it.com -l root -o StrictHostKeyChecking=no "uptime;uname -a"

 

Sample Output

18:49:34 up 21 days, 18:49,  3 users,  load average: 0.01, 0.00, 0.00
Linux ldap.nextstep4it.com 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux

 

Example:3 Copying a file using rsync to a server 

 

In our case we are copying a file sshpass.tar.gz to a remote server ldap.nextstep4it.com

 

# sshpass -p 'password' rsync -av --progress sshpass.tar.gz root@ldap.nextstep4it.com:/tmp/

 

Output of above Command

sending incremental file list
sshpass.tar.gz
98362 100%   62.56MB/s    0:00:00 (xfer#1, to-check=0/1)

 

sent 98472 bytes  received 31 bytes  197006.00 bytes/sec
total size is 98362  speedup is 1.00
root@server1:/home/nextstep4it#

 

Example:4  For loop for copying on to remote servers

 

Create a file as the following

 

touch /tmp/scr

 

The file should contain the name of the hosts

server2.nextstep4it.com
server3.nextstep4it.com
server4.nextstep4it.com
server5.nextstep4it.com

 

#for i in `cat /tmp/scr`; do echo " ";echo "###$i####"; sshpass -p 'password' rsync -av --progress sshpass.tar.gz root@$i:/tmp/; done                                                                                  

 

Output of Above Command :

###server2.nextstep4it.com####
sending incremental file list

sent 54 bytes  received 12 bytes  132.00 bytes/sec
total size is 98362  speedup is 1490.33

###server3.nextstep4it.com####
sending incremental file list

sent 54 bytes  received 12 bytes  44.00 bytes/sec
total size is 98362  speedup is 1490.33

###server4.nextstep4it.com####
sending incremental file list

sent 54 bytes  received 12 bytes  132.00 bytes/sec
total size is 98362  speedup is 1490.33

###server5.nextstep4it.com####
sending incremental file list

sent 54 bytes  received 12 bytes  132.00 bytes/sec
total size is 98362  speedup is 1490.33

 

Post Your Comments
Name:
Email:
Comment:
Security Code  *
Enter Security Code  *
Can't read the image? click here to refresh