如何使用另一台伺服器 ssh 到另一台伺服器?

如何使用另一台伺服器 ssh 到另一台伺服器?

可能的重複:
透過多個主機進行 ssh

用於連接到伺服器B我必須先 ssh 到伺服器A。訪問的命令列是什麼伺服器B

答案1

如果可以透過以下方式存取伺服器 Bssh並且您只需要ssh(而不是直接scpsftp),這也非常有效:

ssh -t $SERVER_A ssh $SERVER_B

即使在另一端執行單一命令時,該-t選項也會強制分配偽終端。這很有幫助,因為ssh需要一個偽終端。

由於您使用的是 的兩個嵌套實例ssh,因此內部會話中的轉義字元是Enter ~ ~(兩個波浪號)。一個波形符號會將轉義傳送到第一個 shell。

答案2

ssh除了使用連接埠轉送之外,沒有內建的方法可以做到這一點。

然而,有一種方法相當有效——sshProxyCommand設定。您可以在每個主機的基礎上進行指定,~/.ssh/config並使用它來指定要執行以連接到遠端 ssh 連接埠的命令。

我在多個主機上使用它:

host serverB.example.com serverB
  ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p

ssh(1)有關詳細信息,請參閱手冊頁,並nc(1)netcat包中查看我用來轉發連接的命令。 (不過,您可以使用任何建立 TCP 連線並透過它傳遞標準輸入和輸出的東西。)

相關內容