非交互式ssh到服务器但交互式

时间:2011-11-03 13:51:33

标签: bash login ssh sh ssh-keys

我理解以这种方式使用ssh的所有安全风险,但我现在需要的是一些能够登录target服务器并执行foo命令的行(bash)shell脚本并返回源主机,如:

while true
do
   ssh target foo   # Here I get the prompt for a password which
                    # I would like to give non-interactively
   sleep 1
done

不希望使用基于ssh密钥的身份验证,因为我真正需要的是每秒模拟一次(或左右)交互式登录过程(但不是交互式!)。

3 个答案:

答案 0 :(得分:2)

您需要使用expect编写脚本,例如perl

修改:您还可以直接在bash中尝试编写expect脚本。

答案 1 :(得分:0)

您必须编辑SSH服务器以仅允许基于密钥而不是密码登录。

尝试查看this是否可以为您提供帮助。

当然,如果您无法编辑服务器配置,则需要检查其他解决方案

答案 2 :(得分:0)

sshpass旨在以编程方式而不是以交互方式为ssh提供密码。因此,您可以将ssh target foo替换为例如sshpass -f passwordfile ssh target foo