【发布时间】:2014-08-18 16:39:57
【问题描述】:
我想使用 bash 脚本将密码传递给 ssh(是的,我知道我可以使用 ssh 密钥,但这不是我想要的)。
我找到了一些使用 expect 的解决方案,但由于它不是标准的 bash 工具,我想知道我是否可以使用管道来做到这一点。
谁能给我解释一下,为什么是这样的:
echo "password\n" | ssh somehost.com
或
ssh somehost.com <(echo "password\n")
不工作?有没有可能让它发挥作用?也许将ssh作为不同的进程执行,获取它的PID,然后直接向它发送一个字符串?
【问题讨论】:
-
你需要获得sshpass
-
虽然这个问题听起来可能与 stackoverflow 的主题无关,但我没有发现它在其他任何地方被问到。问题和答案帮助我理解,为什么管道不适用于 ssh。 ("printf user/pass | vpn user@HOST" 有效。)
-
非常密切相关:How to pass password to scp?