【发布时间】:2010-10-02 07:57:16
【问题描述】:
如何使用 expect 向 ssh 连接发送密码。
说密码是 p@ssword 并且 ssh 命令是 ssh me@127.0.0.1
如果提示输入密码,我该怎么办?
me@127.0.0.1 的密码:
?
使用 SSH 密钥对的正确操作不是一个选项,因为我必须使用 ssh (scp) 将密钥放在服务器上,这会要求输入密码。
【问题讨论】:
-
只需将密钥放在服务器上一次,然后它就不会再次提示输入密码。请参阅我的答案以获取操作指南的链接。
-
@malfist - 为什么这不是一个选项?通常假设任何解决方案的安装和配置,那么为什么不将其作为安装/配置的约束呢?除非你所做的事情不是光明正大的,否则你应该考虑以正确的方式去做,而不是设计一个hack-around。
-
然后创建您自己的控制 tty 并从那里执行 ssh ......这对我来说仍然听起来很可疑,虽然。我想不出这种“自动化”的一个非非法用例。
-
这样做的正当理由是,如果您正在编写对不支持基于证书登录的 网络设备 的 ssh 访问脚本 - 例如思科交换机。
-
还有其他用例。我的是测试环境。每次重新安装代码时,证书都会更改。它是测试程序的一部分。并且测试必须是自动的...... :)