How to automate SSH login with password? ssh autologin

How to automate SSH login with password?

 
Before we begin, I would like to highlight that you are recommended to use public key authentication method if you want to setup login via ssh to any machines without the use of password instead of the method describe next. This is because it is more secure. There are plenty of articles in the web that explain why and please search for it if you want to know more.

Since I mentioned public key authentication is more preferred, why are we still interested in the method that we are going to explore next? Well in some machines or environments, public key authentication was not setup and you might not have the privelleges to set it up. If you happened to be in the senario decribed above and are in a hurry to ssh to a large number of machines to perform some tasks, below method might come in handy for you.

Step 1
Create a custom script using expect scripting language. As an example name the script as auto_login. The first line of the script should look like below.
#!/usr/bin/expect

Step 2
Setup three variables that will store user input for ssh login process. Basically these are hostname, userid and password.
set hostname [lindex $argv 0]
set pwd [lindex $argv 1]
set userid [lindex $argv2]

Step 3
Provide the syntax that will initiate the ssh process using the variables defined in step 2.
spawn ssh "$userid\@$hostname"

Step 4
Provide the syntax on what condition the script to start inputing the password. Usually it will be at the prompt for password. Notice the letter "P" is omitted below. This is due to some prompt wil use "P" and some "p".
expect "assword:*"

Step 5
Provide the syntax to input the password and give you the session for your task after login.
send "$pwd\r"
interact


Basically the whole script will look like below.
#!/usr/bin/expect
set hostname [lindex $argv 0]
set pwd [lindex $argv 1]
set userid [lindex $argv2]
spawn ssh "$userid\@$hostname"
expect "assword:*"
send "$pwd\r"
interact

Now you can try to test it out.
./auto_login "hostname" "password" "userid"
0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
Fix rpmdb: Thread died in Berkeley DB library
Viewed 22023 times since Fri, Feb 14, 2020
How to sort IP addresses in Linux
Viewed 4449 times since Sun, May 20, 2018
How to remove CTRL-M (^M) characters from a file in Linux
Viewed 3512 times since Thu, Feb 7, 2019
watchdog How to restart a process out of crontab on a Linux/Unix
Viewed 7053 times since Tue, Jul 31, 2018
zabbix linux How to solve apache error No space left on device: Cannot create SSLMutex
Viewed 3276 times since Wed, Nov 11, 2020
RHCS6: Extend an existing Logical Volume / GFS2 filesystem
Viewed 4056 times since Sun, Jun 3, 2018
Monitoring bezpieczeństwa Linux: integracja auditd + OSSEC cz. I
Viewed 3206 times since Fri, Apr 5, 2019
RHEL: Adding a boot entry to GRUB/GRUB2 configuration
Viewed 5909 times since Sun, May 27, 2018
Create a Linux Swap File
Viewed 3734 times since Fri, Jun 8, 2018
KONTO SFTP Z CHROOTEM Z UŻYCIEM OPENSSH-SERVER NA CENTOS/RHEL6
Viewed 2592 times since Fri, Nov 30, 2018