2019-02-07 13:43:22 -05:00
|
|
|
#!/bin/bash
|
|
|
|
#Maintained by Linux Operations - Russ Long - <rlong@nabancard.com>
|
|
|
|
|
|
|
|
#Set variables
|
|
|
|
keyname=${1}
|
|
|
|
|
2019-03-19 09:01:05 -04:00
|
|
|
username=${2}
|
|
|
|
|
|
|
|
hostname=${3}
|
2019-02-07 13:43:22 -05:00
|
|
|
|
2019-02-07 14:06:12 -05:00
|
|
|
keyfile=$HOME/.ssh/${keyname}-$(date "+%s")
|
2019-02-07 13:43:22 -05:00
|
|
|
#Check to see if user is logged in to lastpass cli
|
|
|
|
#check_login()
|
|
|
|
#{
|
|
|
|
if lpass status | grep -q "Logged in as"; then
|
|
|
|
echo "Logged in to Lastpass, continuing..."
|
|
|
|
else
|
|
|
|
echo "Please login with 'lpass login email@address.com'"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
#}
|
|
|
|
|
2019-02-07 13:49:53 -05:00
|
|
|
#Fetch private key and place in /home/$user/.ssh/$keyname_datetime
|
2019-02-07 13:43:22 -05:00
|
|
|
lpass show $keyname --field="Private Key" > $keyfile
|
|
|
|
chmod 0600 $keyfile
|
|
|
|
|
|
|
|
#store passphrase in a variable
|
|
|
|
sshpassphrase=$(lpass show $keyname --field=Passphrase)
|
|
|
|
|
|
|
|
#Add the key to ssh-agent
|
|
|
|
expect << EOF
|
2019-02-07 14:06:12 -05:00
|
|
|
spawn ssh-add -t 30 $keyfile
|
2019-02-07 13:43:22 -05:00
|
|
|
expect "Enter passphrase"
|
|
|
|
send "$sshpassphrase\r"
|
|
|
|
expect eof
|
|
|
|
EOF
|
|
|
|
|
|
|
|
#SSH to the host
|
2019-03-19 09:01:05 -04:00
|
|
|
ssh $username@$hostname
|
2019-02-07 13:43:22 -05:00
|
|
|
|
2019-02-07 14:06:12 -05:00
|
|
|
#Remove keyfile
|
2019-02-07 13:43:22 -05:00
|
|
|
rm -f $keyfile
|