【发布时间】:2016-08-10 11:29:08
【问题描述】:
我正在使用命令通过 ssh 连接到远程服务器
spawn ssh userId@host
expect "password:"
send "password\r"
有时会出现问题,即使在 shell 提示输入密码之前,发送命令也会运行,导致密码在控制台上以纯文本形式显示。
有办法
- 确保,send 总是在 expect 之后调用
- 或者如果它被调用,它应该显示类似
*******而不是纯文本
我阅读了send 的文档,但没有运气。
【问题讨论】:
-
sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no YOUR_USERNAME@SOME_SITE.COM? stackoverflow.com/questions/12202587/… -
如果可能,请使用公钥身份验证在没有密码的情况下登录,而不是在脚本中公开您的密码(
sshpass和expect都这样做)。 -
这绝不是
bash的问题。expect是它自己的、基于 TCL 的语言——当你运行 expect 时,你不再使用 bash。