如何使用密码进行多跳 ssh?

如何使用密码进行多跳 ssh?

我想ssh从 出发server1server3经由到达server2

这可以使用以下方法完成:

ssh -t user2@server2 ssh user3@server3

但我怎样才能做到这server2一点server3密码登录?

限制条件:

1)不会输入密码

2)在这种情况下我无法使用 ssh 密钥

答案1

-t您应该在每个后续的 中使用该选项ssh,最后一个除外:

ssh -t user1@server1 ssh -t user2@server2 ssh user3@server3

如果可能,最好使用-J( ProxyJump) 而不是嵌入的 ssh 命令:

ssh -J user1@server1,user2@server2 user3@server3

答案2

有几种方法可以做到这一点。我会使用的快速而肮脏的方法是从隧道中出来server1 -> server2,然后使用该隧道去server1 -> server3

ssh -L localhost:2222:server3:22 server2

在这里我们说的是:
ssh 到server2...
上显示的任何流量L本地主机端口 2222 上隧道的本地侧...
穿过隧道..
在远端,将该流量发送到 server3 端口 22

然后从另一个窗口:

ssh -p2222 localhost

这将提示您输入 server3 上的密码。

相关内容