我正在尝试在 Bash 脚本中使用 expect
来提供 SSH 密码。提供密码是可行的,但我并没有像我应该的那样进入 SSH 会话。它可以追溯到海峡。
我的脚本:
#!/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"
我的脚本的输出:
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com
usr@$myhost.example.com's password: you're out
我想要我的 SSH 会话,并且只有当我退出它时,才能回到我的 Bash 脚本。
我在 expect
之前使用 Bash 的原因是因为我必须使用菜单。我可以选择要连接的单元/设备。
对于那些想回复我应该使用SSH密钥的人,请弃权。
原文由 Max 发布,翻译遵循 CC BY-SA 4.0 许可协议
混合 Bash 和 Expect 并不是达到预期效果的好方法。我会尝试只使用Expect:
bash 的示例解决方案可能是:
这将等待
Enter
然后返回(片刻)交互式会话。