带有proxycommand的sshpass返回而不运行任何东西

时间:2018-05-09 06:10:48

标签: ssh proxy sshpass

在我们的环境中,我们有几台服务器正在生产中。每次我想搜索某些内容时,它可能是4个不同服务器中的1个。 我正在创建一个脚本来自动执行此搜索,以便我直接知道涉及哪个服务器。

我通过jumphost连接。

到目前为止,以下命令工作正常:

$ ssh -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

现在,因为我必须多次运行,我正在寻找一种只需要使用密码一次的方法。

jumphost和服务器都需要相同的密码,公钥不是一个选项(不允许,我实际上不能这样做。)

我一直在阅读 sshpass ,我正在尝试这个:

$ sshpass -p password ssh -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

(我知道-p不安全,一旦我成功完成这一步,就会使用-f -f。

当我这样做时,我可以在两个系统中登录,但命令在我看到ls的结果之前返回。 我试图让ssh的 -t 选项没有任何成功。

我也尝试过ssh中的 -J 选项,结果相同(命令返回时不返回任何结果)。

$ sshpass -p password ssh -J user@jumphost user@server "ls"

有什么建议吗?

编辑:

解决方案是使用sshpass两次:

$ sshpass -p password ssh -oProxyCommand="sshpass -p ssh -W %h:%p user@jumphost" user@server "ls"

1 个答案:

答案 0 :(得分:1)

尝试以详细模式运行ssh:

ssh -vvv -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

我相信它会表现出一些有趣的东西。一个钩子,你可以用它来解决这个问题。