如何使用堡壘主機安全地連線到私有子網路中的 EC2 Linux 執行個體?

2 分的閱讀內容
0

我想使用堡壘主機連線到在私有子網路中執行的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體。

簡短說明

EC2 Linux 執行個體使用 SSH 金鑰組檔案做為預設身分驗證方法。金鑰組檔案不再需要 SSH 使用者名稱和密碼。若要維護安全的環境,請勿將私有金鑰儲存在堡壘主機上。若要使用堡壘主機進行連線,請在用戶端上使用 ssh-agent 轉送。ssh-agent 可讓管理員從堡壘連線到另一個執行個體,而不必將私有金鑰儲存在堡壘上。

解決方法

先決條件

  • 堡壘主機必須存在於 VPC 的公有子網路中,如此您就可以透過網際網路存取主機。
  • 將私有 Linux 執行個體的安全群組設定為僅接受來自堡壘主機的 SSH 連線。
  • 將堡壘主機的安全群組設定為僅允許來自已知和可信 IP 位址的 SSH 連線 (TCP/22)。

在 macOS 或 Linux 用戶端上設定 ssh-agent 轉送

**注意:大多數 Linux 和 macOS 發行版本預設安裝了 **openssh-clients 套件,並且包含 ssh-agent

1.    執行下列命令以在背景啟動 ssh-agentssh-agent 會將您的 SSH 金鑰儲存在記憶體中。

#  eval $(ssh-agent)

2.    執行下列命令以將 SSH 金鑰新增至 ssh-agent

# ssh-add "/path/to/key.pem"

3.    執行下列命令,以驗證這些金鑰是否已新增至 ssh-agent

# ssh-add -l

4.    執行下列命令以連線到堡壘主機。在下列命令中,將 UserBastion_Host_****IP_address 改為您使用案例的正確值。

# ssh -A User@Bastion_Host_IP_Address

**注意:**請確定您在上述命令中包含 -A 旗標。如果您未新增 -A 旗標,則 ssh-agent 轉送將無法運作,因為金鑰未新增至記憶體中。將 SSH 金鑰新增至記憶體之後,您不必使用 -i 旗標指定 SSH 金鑰本身。這是因為 SSH 會自動嘗試使用所有儲存在 ssh-agent 中的 SSH 金鑰。

5.    連線到堡壘主機之後,執行下列命令以連線到私有 Linux 執行個體。在下列命令中,將 UserPrivate_instance_IP_address 改為您使用案例的正確值。

# ssh User@Private_instance_IP_address

如果已載入私有執行個體的相符私有金鑰 ssh-agent,則連線成功。

在 Windows 用戶端上設定 ssh-agent 轉送

您可以使用 PuTTY (適用於 Windows 的免費 SSH 用戶端),從 Windows 連線到 Linux VPC 執行個體。若要取得 SSH 代理程式功能,請使用 Pageant (SSH 身分驗證代理程式)。Pageant 會將您的私有金鑰保存在記憶體中。安裝 Pageant 後,您可以使用 PuTTY 中的代理程式轉送選項來連線到私有子網路中的執行個體。

1.    從 PuTTY 下載頁面下載並安裝 PuTTY 和 Pageant。

2.    PuTTY 本身不支援 SSH 金鑰的 PEM 格式。若要使用 PuTTY 連線到執行個體,請使用 PuTTYgen 將私有金鑰從 PEM 格式轉換為 PuTTY 格式。PuTTYgen 可從 PuTTY 下載頁面取得。如需相關資訊,請參閱使用 PuTTYgen 轉換私有金鑰

3.    開啟 Pageant 並新增私有金鑰。若要將 PuTTY 格式的金鑰匯入到 Pageant 中,請從「開始」功能表啟動 Pageant 應用程式。Pageant 預設會在系統匣中以最小化方式開啟。

**注意:**如果系統匣中看不到 Pageant 圖示,請使用工作列設定來新增。如需相關資訊,請參閱 support.microsoft.com 網站上的自訂工作列通知區域

4.    若要新增 SSH 金鑰,請在系統匣中的 Pageant 圖示上按一下滑鼠右鍵,然後選擇「新增金鑰」。若要檢視新增的金鑰,請在系統匣中的 Pageant 圖示上按一下滑鼠右鍵,然後選擇「檢視金鑰」。

5.    完成下列步驟,以啟動 PuTTY SSH 工作階段並開啟「允許代理程式轉送」:

  • 從「開始」功能表中,依序選擇**「所有程式」、「PuTTY」、「PuTTY」**。
  • 在「類別」窗格中,選擇「工作階段」。
  • 在「主機名稱」欄位中,執行下列其中一項作業:
    若要使用執行個體的公有 DNS 名稱進行連線,請輸入 user-name@instance-public-dns
    若要使用執行個體的 IPv4 地址進行連線,請輸入 user-name@instance-IPv4-address
  • 依序選取「連線類型」、「SSH」,並確定「連接埠」值為 22
  • 在「類別」窗格中,依序展開「連線」、「SSH」,然後選取「身分驗證」。
  • 選擇「允許代理程式轉送」。
  • 選擇「開啟」。

6.    您可以從堡壘連線到 VPC 中的任何執行個體,而不必在堡壘上使用 SSH 私有金鑰。使用下列命令以連線到其他執行個體。在下列命令中,將 UserPrivate_instance_IP_address 改為您使用案例的正確值。

# ssh User@Private_instance_IP_address

如果私有執行個體的相符私有金鑰已載入 Pageant,則連線成功。

AWS 官方
AWS 官方已更新 10 個月前