使用bash脚本中的Expect为SSH命令提供密码对于那些想回复我应该使用SSH键的人,请弃权。我试图在bash脚本中使用Expect来提供SSH密码。提供密码工作,但我没有结束在SSH会话,我应该,它回到海峡的打击。我的剧本:#!/bin/bashread -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"我的脚本的输出:spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com
usr@$myhost.example.com's password: you're out我希望拥有我的SSH会话,并且只有当我退出SSH会话才能返回到bash脚本。我之所以在Expect之前使用bash,是因为我使用了一个菜单,我可以选择连接到哪个单元。谢谢
3 回答
慕斯王
TA贡献1864条经验 获得超2个赞
#!/usr/bin/expecteval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com#use correct promptset prompt ":|#| \\\$"interact -o -nobuffer -re $prompt returnsend "my_password\r"interact -o -nobuffer -re $prompt returnsend "my_command1\r" interact -o -nobuffer -re $prompt returnsend "my_command2\r"interact
#!/bin/bash/usr/bin/expect -c 'expect "\n" { eval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com; interact }'
12345678_0001
TA贡献1802条经验 获得超5个赞
sshpass -p<password> ssh <arguments>sshpass -ptest1324 ssh user@192.168.1.200 ls -l /tmp
注:man sshpass
慕码人8056858
TA贡献1803条经验 获得超6个赞
#!/bin/bashread -s PWD/usr/bin/expect <<EOD spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com expect "password"send "$PWD\n" interact EOD echo "you're out"
添加回答
举报
0/150
提交
取消