To those who want to reply that I should use SSH keys please abstain
I'm trying to use expect in an bash script to provide the SSH password. Providing the password works but I don't end up in the SSH session as I should, it goes back strait to bash.
My script:
#!/bin/bash
read -s PWD
/usr/bin/expect <<EOD
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com'
expect "password"
send "$PWD\n"
EOD
echo "you're out"
The output of my script:
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com
usr@$myhost.example.com's password: you're out
I would like to have my SSH session and only when I exit it to go back to my bash script. The reason why I am using bash before expect is because I have use a menu I can choose which unit to connect to.
Thanks
After looking for an answer for the question for months, I finally find a really best solution: writing a simple script.
Put it to
/usr/bin/exp
, then you can use:exp <password> ssh <anything>
exp <password> scp <anysrc> <anydst>
Done!
Use the helper tool
fd0ssh
(from hxtools, not pmt), it works without having to expect a particular prompt from the ssh program.