如何使用 sshpass 进行链式连接?

如何使用 sshpass 进行链式连接?

我有两台客户的机器,$gateway$server,第二台只能从第一台访问。两个系统上都无法使用公钥认证。因此,要$command在服务器上执行某些操作,我需要运行ssh $gateway ssh $server $command,然后输入两个密码。我可以使用sshpass,但它只能处理第一个连接,我仍然需要手动输入第二个密码。

我怎样才能以完全非交互式的方式(无需手动输入密码) ssh 访问服务器?

我看到的唯一方法是使用隧道,但由于互联网连接不稳定,它们很难维持。

答案1

尝试:

ssh -oProxyCommand="ssh -W %h:%p $gateway" $server command

例如:

ssh -oProxyCommand="ssh -W %h:%p [email protected]" [email protected] command

$server这将使用代理通过另一个命令连接 ssh ssh,而无需实际创建隧道。这确保两个 ssh 客户端都在本地运行,从而使用 sshpass。

相关内容