我想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 上的密碼。