CH-J Server Manager透過 SSH 管理伺服器
選單
所有指南與文章 →

如何透過 SSH 跳板主機(堡壘主機)連線

透過一台或多台跳板主機存取內部伺服器,驗證每台主機的金鑰,並避免轉送認證代理程式。

跳板主機的用途

跳板主機也稱為堡壘主機,是一台你可以直接連線、且能存取內部伺服器的伺服器。對外僅開放堡壘主機的 SSH 連接埠;內部伺服器只接受來自內部網路的 SSH 連線。使用 ProxyJump 時,用戶端會建立一條到堡壘主機的 SSH 連線,再透過它建立第二條到目標伺服器的端對端加密連線。堡壘主機會轉送流量,但無法看到工作階段的內容,而私密金鑰會留在你的電腦上。

從命令列連線

-J 選項用來指定跳板主機。若有多個跳點,請以逗號分隔,連線會依照指定順序通過各跳點。如果經常使用相同路徑,請將設定加入 ~/.ssh/config,之後只需使用簡短的別名。

ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal

# ~/.ssh/config
Host app-internal
    HostName app.internal
    User admin
    ProxyJump admin@bastion.example

驗證每台主機的金鑰

每個跳點都是獨立的 SSH 伺服器,各自擁有主機金鑰,因此請透過另一個可信管道確認堡壘主機與目標伺服器的金鑰指紋。任何跳點的金鑰變更,都應像直接連線時一樣謹慎處理。首次連線時,請將顯示的指紋與管理員在伺服器上讀取的值比較。

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256

優先使用 ProxyJump,避免代理程式轉送

代理程式轉送(ssh -A)會讓堡壘主機上任何具備足夠權限的人,在你保持連線期間使用你已載入的金鑰。ProxyJump 不需要這項功能,因為對目標伺服器的驗證是從你自己的電腦進行。也請避免在堡壘主機上儲存私密金鑰,並限制可登入的人員。

常見連線問題

先找出哪個跳點失敗:單獨連線到堡壘主機,再執行搭配 -J 的 ssh -vvv,查看連線在哪裡停止。如果堡壘主機正常,但目標無法連線,原因通常是兩者之間的防火牆、錯誤的內部主機名稱,或目標伺服器不接受你的金鑰。設定為 AllowTcpForwarding no 的伺服器會拒絕擔任跳板主機。

CH-J Server Manager 中的跳板主機

Alpha 0.1.1 可透過已儲存或手動輸入的跳板主機連線,已儲存的主機也能組成最多三台跳板主機的鏈結。每個跳點都會檢查主機金鑰。可用性監視器只有在通往跳板主機的工作階段已開啟時,才會透過該工作階段檢查跳板主機後方的伺服器;否則會將伺服器顯示為未驗證,絕不會顯示為上線。Beta 0.1.0 沒有此功能。

詳細文件

OpenSSH: ssh (-J) →

OpenSSH: ssh_config (ProxyJump) →

生物辨識解除鎖定與安全性 →