带proxycommand的sshpass返回而不运行任何操作

带proxycommand的sshpass返回而不运行任何操作,ssh,proxy,sshpass,Ssh,Proxy,Sshpass,在我们的环境中,生产中有多台服务器。每次我想搜索的东西,它可能是在4个不同的服务器之一。 我正在创建一个脚本来自动执行此搜索,以便直接知道涉及哪个服务器 我正在通过jumphost连接 到目前为止,以下命令工作正常: $ssh-oProxyCommand=“ssh-W%h:%puser@jumphost" user@server“ls” 现在,因为我必须运行几次,我正在寻找一种只需使用一次密码的方法 jumphost和服务器都需要相同的密码,并且公钥不是一个选项(不允许,我确实不能这样做)。

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

我正在通过jumphost连接

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

$ssh-oProxyCommand=“ssh-W%h:%puser@jumphost" user@server“ls”

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

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

为此,我一直在阅读有关sshpass的文章,我正在尝试:

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

(我知道-p不安全,一旦我成功执行此步骤,我将使用-e或-f)

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

我还尝试了ssh中的-J选项,得到了相同的结果(命令返回时不返回任何结果)

$sshpass-p密码ssh-Juser@jumphost user@server“ls”

有什么建议吗

编辑:

解决方案是使用sshpass两次:

$sshpass-pswordssh-oProxyCommand=“sshpass-psh-W%h:%puser@jumphost" user@server“ls”

尝试在详细模式下运行ssh:

ssh-vvv-oProxyCommand=“ssh-W%h:%puser@jumphost" user@server“ls”


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

这就成功了!使用verbose标志,我意识到我必须使用sshpass两次。我在问题中加上了答案。谢谢