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

Equ*_*oid 6 networking ssh

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

如何对服务器进行完全非交互式(无需手动输入密码)的 ssh 访问?

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

Alb*_*har 5

尝试:

ssh -oProxyCommand="ssh -W %h:%p $gateway" $server command
Run Code Online (Sandbox Code Playgroud)

例如:

ssh -oProxyCommand="ssh -W %h:%p albert@gateway.uibk.ac.at" root@hidden.uibk.ac.at command
Run Code Online (Sandbox Code Playgroud)

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