Jeevan Dongre
Jeevan Dongre

Reputation: 4649

How do I send authentication details in a Bash script?

I want to write a bash script which sends a password to authenticate with a remote server.

For example, I want to write a bash script which would pull the code from a github repository to a server, but I have to specify a password or passpharse to do it.

How am I supposed to code that? I tried couple of things but nothing worked.

Upvotes: 3

Views: 5493

Answers (1)

dimir
dimir

Reputation: 793

I think it was discussed a lot but you could use expect. Here is an example of using it to connect to host using ssh:

#!/usr/bin/expect

set password "YOURPASSWORD"
set user "john"
set host "192.168.1.100"

spawn ssh $user@$host
expect "Password:"
send "$password\n";
interact

Replace "ssh user@host" with your command you want to execute, e. g. "git pull":

spawn git pull

The next line tells which prompt to expect ("Password:"). Make sure this string is set to exactly what appears after you manually do git pull. Case sensitivity and spaces are important.

EDIT: installing expect is easy, on Debian-based systems:

apt -y install expect

on RedHat-based:

yum -y install expect

Upvotes: 7

Related Questions