為什麼無法在 Amazon EC2 Linux 執行個體安裝 SSM Agent?

2 分的閱讀內容
0

當我嘗試在 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體上安裝 AWS Systems Manager Agent (SSM Agent) 時,安裝失敗。

簡短說明

SSM Agent 已預先安裝在大多數 AWS 提供的 Amazon Machine Image (AMI) 上:

  • Amazon Linux
  • Amazon Linux 2
  • Amazon Linux 2 上最佳化的 Amazon Elastic Container Service (Amazon ECS) 基礎 AMI
  • Ubuntu Server 16.04、18.04 和 20.04

不過,若要管理以 RedHat、SUSE 或 CentOS AMI 為基礎的執行個體,您必須手動安裝 SSM Agent。

解決方法

若要對 SSM Agent 安裝失敗進行疑難排解,請檢查下列常見問題:

不支援的作業系統版本

SSM Agent 並非適用於所有作業系統 (OS) 版本。如果您執行不支援的作業系統版本,SSM Agent 安裝會失敗。若要確認 SSM Agent 是否適用於您的作業系統,請參閱 Systems Manager 支援的作業系統

套件下載失敗

手動安裝 SSM Agent 時,SSM Agent 套件會從 Amazon Simple Storage Service (Amazon S3) 儲存庫下載並安裝。如果執行個體無法連線到 S3 儲存貯體來下載套件,SSM Agent 安裝便會失敗。

確認您的 Amazon EC2 執行個體可以存取 S3 儲存庫以下載 SSM Agent 套件:

  • 如果您的執行個體位於具有網路位址轉譯 (NAT) 閘道的私有子網路,請參閱 NAT 閘道
  • 如果您的執行個體位於具有 NAT 執行個體的私有子網路,請參閱 NAT 執行個體
  • 如果您的執行個體位於具有網際網路閘道的公有子網路中,請參閱啟用網際網路存取
  • 如果您的執行個體位於具有 Amazon S3 virtual private cloud (VPC) 端點的私有子網路或公有子網路,請參閱 Amazon S3 閘道端點

在下列情況下,套件下載也可能會失敗:

  • 作業系統內的 DNS 伺服器無法解析 Amazon S3 端點 URL。
  • 您對 VPC 停用了 DNS 解析。

若要確認 /etc/resolv.conf 檔案包含正確 IP 的地址指向您的 DNS 伺服器,請執行下列命令。然後檢閱輸出並確認 nameserver IP 地址與 DNS 伺服器的 IP 地址相符:

$ cat /etc/resolv.conf

如需詳細資訊,請參閱如何對閘道 Amazon VPC 端點的連線問題進行疑難排解?

遺失 SSM Agent 套件的公開金鑰

SSM Agent 套件檔案具有加密簽章。若要確定代理程式套件是原始的,請使用公開金鑰來驗證安裝程式套件簽章。您可以使用 RPM Package Manager (RPM) 或 GNU Privacy Guard (GPG)。RPM 套件已包含 RPM 驗證所需的簽章。如果您使用 GPG 驗證安裝程式套件,則必須手動匯入公開金鑰。否則,安裝失敗,並出現下列錯誤:

「Public key for amazon-ssm-agent.rpm is not installed」

如需詳細資訊,請參閱驗證 SSM Agent 的簽章

交易測試錯誤

當您使用 RPM 安裝 SSM Agent 時,請執行下列命令將公開金鑰匯入至您的金鑰圈中:

rpm --import amazon-ssm-agent.gpg

執行此命令並嘗試安裝 SSM Agent 之後,您可能會看到下列錯誤:

「Transaction test error: package amazon-ssm-agent-VERSION_NO does not verify: Header V4 RSA/SHA1 Signature」

此錯誤可能會發生在具有已棄用的 SHA1 算法的 RHEL Linux 8.x 和 9.x 執行個體中。若要解決此問題,請執行下列步驟:

  1. 使用 GPG 手動導入公開金鑰:

    gpg --import amazon-ssm-agent.gpg
  2. 驗證 SSM Agent 的簽章,然後安裝 SSM Agent。

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