我有三個系統,一個只安裝 ssh 客戶端的客戶端以及 server_1 和 server_2 。我使用 ssh 公共身份驗證,我可以從客戶端 ssh 到 server_1 和 server_2。我為伺服器1 保存了相同的公鑰,現在我想使用代理轉發從伺服器1 ssh 到伺服器2,並且我希望我的私鑰僅保留在客戶端上,請盡快幫助我,我該怎麼做這種情況?我使用此鏈接,但不知道該怎麼做。
答案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(使用相同的金鑰。)
只需執行以下命令即可。
在客戶端:
使用tmux或打開2個終端
ssh user@server1
在新航廈中:
ssh user@server2
答案3
簡單的答案是添加-A
這樣的標誌:
ssh -A [user]@[hostname]