我想ssh
从 出发server1
并server3
经由到达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 上的密码。