Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 996
Jeevan Dongre Avatar asked Jul 09 '26 18:07

Jeevan Dongre


1 Answers

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
like image 95
5 revs, 2 users 98%dimir Avatar answered Jul 12 '26 15:07

5 revs, 2 users 98%dimir



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!