如何使用ssh代理轉發

如何使用ssh代理轉發

我有三個系統,一個只安裝 ssh 客戶端的客戶端以及 server_1 和 server_2 。我使用 ssh 公共身份驗證,我可以從客戶端 ssh 到 server_1 和 server_2。我為伺服器1 保存了相同的公鑰,現在我想使用代理轉發從伺服器1 ssh 到伺服器2,並且我希望我的私鑰僅保留在客戶端上,請盡快幫助我,我該怎麼做這種情況?我使用此鏈接,但不知道該怎麼做。

SSH 代理轉發圖解指南:使用代理轉發進行公鑰訪問

答案1

首先,您必須呼叫ssh-agent您的客戶端以使其記住您的金鑰

ssh-agent -t 3600 ~/.ssh/private_key_rsa

(假設您的金鑰儲存在 中,如果您想要無限的生命週期,~/.ssh/private_key_rsa您也可以省略)-t 3600

-A然後你只需使用以下選項ssh 到你的一台伺服器

ssh -A server1

從那裡您將能夠 ssh 進入 server2

ssh server2

如果您不想-A每次都指定該選項,可以將以下內容新增至您的~/.ssh/config (在用戶端和可選的兩台伺服器上)

Host server1
 ForwardAgent yes

Host server2
 ForwardAgent yes

這適用於任意數量的伺服器。為了保持~/.ssh/config簡短,您可以引入通配符,例如

Host server?
  ForwardAgent yes

答案2

將伺服器主機轉送到 localhost :

ssh -L localhost:22:localhost:22 user@host

或者

ssh -N -f -L serverhost:22:localhost:22 user@server1

再次閱讀你的問題後。

您想要 ssh 進入 server1 :

ssh user@server1

然後你想透過 ssh 進入 server2:

從客戶端進入新終端:

ssh user@server1
ssh user@server2

那麼你就有了 2 個連結:

  1. 客戶端到伺服器1
  2. 客戶端到伺服器 1 ==> 伺服器 2

如果你想擁有:

  1. 客戶端到伺服器1
  2. 客戶端到伺服器 2(使用相同的金鑰。)

只需執行以下命令即可。

在客戶端:

使用tmux或打開2個終端

ssh user@server1

在新航廈中:

ssh user@server2

答案3

簡單的答案是添加-A這樣的標誌:

ssh -A [user]@[hostname]

相關內容