

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 管理已啟用 SFTP 的伺服器的主機金鑰
<a name="configuring-servers-change-host-key"></a>

伺服器主機金鑰是 Transfer Family 伺服器用來為呼叫者提供唯一身分的私有金鑰，並保證它是正確的伺服器。該保證是由發起人`known_hosts`檔案中存在正確的公有金鑰強制執行。( `known_hosts` 檔案是大多數 SSH 用戶端用來存放您已連線之伺服器的公有金鑰的標準功能。) 您可以針對伺服器執行 ，擷取對應至伺服器主機金鑰`ssh-keyscan`的公有金鑰。

**重要**  
意外變更伺服器的主機金鑰可能造成破壞。根據您的 SFTP 用戶端的設定方式，它可能會立即失敗，並顯示沒有信任主機金鑰存在的訊息，或出現威脅提示。如果有用於自動化連線的指令碼，它們很可能也會失敗。

根據預設， 會為啟用 SFTP 的伺服器 AWS Transfer Family 產生主機金鑰。您可以匯入伺服器主機金鑰來保留主機身分，並避免更新用戶端信任存放區。 [何時匯入主機金鑰](#host-key-import-use-cases)會列出您可能想要這麼做的幾個原因。如果您不提供主機金鑰，則會為您產生新的金鑰。

AWS Transfer Family 支援多種不同類型的主機金鑰 (RSA、ECDSA 和 ED25519)，可與更廣泛的用戶端主機簽章演算法相容。不同的金鑰類型可啟用特定演算法：RDA 金鑰可啟用 **rsa-\$1** 演算法、ECDSA 金鑰可啟用 **ecdsa-\$1** 演算法，而 ED25519 金鑰可啟用 **ed25519** 演算法。在伺服器建立時間規劃您的金鑰類型，因為在用戶端開始與伺服器互動之後引入其他金鑰類型，可能會對某些用戶端造成干擾，並可能和取代現有的主機金鑰一樣有問題。

若要防止提示使用者再次驗證已啟用 SFTP 伺服器的真實性，請將現場部署伺服器的主機金鑰匯入已啟用 SFTP 的伺服器。這麼做也會防止使用者收到潛在中間人攻擊的警告。

您也可以定期輪換主機金鑰，做為額外的安全措施。如需詳細資訊，請參閱[輪換伺服器主機金鑰](server-host-key-rotate.md)。

**注意**  
伺服器主機金鑰由支援 SFTP 通訊協定的伺服器使用。

## 何時匯入主機金鑰
<a name="host-key-import-use-cases"></a>

雖然 AWS Transfer Family 可以自動產生主機金鑰，但匯入您自己的主機金鑰有幾種情況可提供操作優勢：
+ *伺服器遷移* - 您要從現有伺服器遷移至 ， AWS Transfer Family 並希望避免更新現有用戶端的用戶端信任存放區 (`known_hosts` 檔案）。
+ *災難復原和容錯移轉* - 您擁有多個共用相同公有 DNS 名稱的 AWS Transfer Family 伺服器 （例如，一個在美國東部 （俄亥俄） 和一個在美國西部 （奧勒岡）)。在兩個伺服器上使用相同的主機金鑰可確保無縫容錯移轉，而不會發生用戶端身分驗證失敗。
+ *營運持續性* - 您希望主機金鑰材料未來可與其他伺服器 (AWS Transfer Family 或其他） 搭配使用，以在整個基礎設施中維持一致的伺服器身分。
+ *演算法控制* - 您想要透過提供更多主機金鑰演算法來提高用戶端相容性，或者您想要透過僅提供與特定演算法相容的金鑰來控制用戶端可以使用的演算法。

下列主題提供管理伺服器主機金鑰的詳細程序：
+ [新增額外的伺服器主機金鑰](server-host-key-add.md) - 將其他主機金鑰新增至伺服器
+ [刪除伺服器主機金鑰](server-host-key-delete.md) - 從伺服器移除主機金鑰
+ [輪換伺服器主機金鑰](server-host-key-rotate.md) - 輪換主機金鑰以增強安全性
+ [其他伺服器主機金鑰資訊](server-host-key-other.md) - 檢視和管理主機金鑰詳細資訊

# 新增額外的伺服器主機金鑰
<a name="server-host-key-add"></a>

在 AWS Transfer Family 主控台上，您可以新增其他伺服器主機金鑰。新增其他不同格式的主機金鑰，有助於在用戶端連線到伺服器時識別伺服器，並改善您的安全性設定檔。例如，如果您的原始金鑰是 RSA 金鑰，您可以新增額外的 ECDSA 金鑰。

**注意**  
SFTP 用戶端將使用符合金鑰演算法之組態中最舊的金鑰進行連線。每個金鑰類型的最舊金鑰 (RSA、ECDSA 或 ED25519) 是該類型伺服器的作用中金鑰。

**Transfer Family 伺服器具有多種主機金鑰類型時的安全性備註**  
如果伺服器具有多種類型的主機金鑰，SFTP 用戶端可以依類型指派偏好設定。因此，當伺服器存在 RSA、ECDSA 和 ED25519 主機金鑰時，選擇取決於 類型偏好設定。

現代 SFTP 用戶端在存在時偏好 ECDSA 和 ED25519 主機金鑰。如果您想要在伺服器先前只有 RSA 金鑰時新增 ECDSA 或 ED25519 金鑰，這就變得很重要。新增 ECDSA 或 ED25519 金鑰可能會顯示為用戶端的安全警告。

對於用戶端，金鑰會顯示為已變更，實際上並未變更：除了現有的 RSA 金鑰之外，還新增了新的金鑰。如果您決定新增類型的伺服器主機金鑰，請記住這一點。

**新增額外的伺服器主機金鑰**

1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台。

1. 在左側導覽窗格中，選擇**伺服器**，然後選擇使用 SFTP 通訊協定的伺服器。

1. 在伺服器詳細資訊頁面上，向下捲動至**伺服器主機金鑰**區段。  
![\[伺服器主機金鑰主控台區段。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/server-host-keys.png)

1. 選擇**新增主機金鑰**。

   隨即顯示**新增伺服器主機金鑰**頁面。

1. 在**伺服器主機金鑰**區段中，輸入 RSA、ECDSA 或 ED25519 私有金鑰，用於在用戶端透過啟用 SFTP 的伺服器連線到伺服器時識別您的伺服器。
**注意**  
當您建立伺服器主機金鑰時，請務必指定 `-N ""`（無複雜密碼）。如需如何產生金鑰對的詳細資訊[在 macOS、Linux 或 Unix 上建立 SSH 金鑰](macOS-linux-unix-ssh.md)，請參閱 。

1. （選用） 新增描述以區分多個伺服器主機金鑰。您也可以為金鑰新增標籤。

1. 選擇 **Add key (新增金鑰)**。您會返回**伺服器詳細資訊**頁面。

若要使用 AWS Command Line Interface (AWS CLI) 新增主機金鑰，請使用 [ImportHostKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ImportHostKey) API 操作並提供新的主機金鑰。如果您建立新的啟用 SFTP 的伺服器，您可以在 [CreateServer](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateServer) API 操作中提供主機金鑰做為參數。您也可以使用 AWS CLI 更新現有主機金鑰的描述。

下列範例`import-host-key` AWS CLI 命令會匯入指定啟用 SFTP 之伺服器的主機金鑰。

```
aws transfer import-host-key --description key-description --server-id your-server-id --host-key-body file://my-host-key 
```

# 刪除伺服器主機金鑰
<a name="server-host-key-delete"></a>

在 AWS Transfer Family 主控台上，您可以刪除伺服器主機金鑰。

**刪除伺服器主機金鑰**

1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台。

1. 在左側導覽窗格中，選擇**伺服器**，然後選擇使用 SFTP 通訊協定的伺服器。

1. 在伺服器詳細資訊頁面上，向下捲動至**伺服器主機金鑰**區段。  
![\[伺服器主機金鑰主控台區段。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/server-host-keys.png)

1. 在**伺服器主機金鑰**區段中，選取金鑰，然後在**動作**下選擇**刪除**。

1. 在出現的確認對話方塊中，輸入字詞 **delete**，然後選擇**刪除**以確認您想要刪除主機金鑰。

主機金鑰會從**伺服器**頁面刪除。

若要使用 刪除主機金鑰 AWS CLI，請使用 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_DeleteHostKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_DeleteHostKey) API 操作並提供伺服器 ID 和主機金鑰 ID。

下列範例`delete-host-key` AWS CLI 命令會刪除指定啟用 SFTP 之伺服器的主機金鑰。

```
aws transfer delete-host-key --server-id your-server-id --host-key-id your-host-key-id
```

# 輪換伺服器主機金鑰
<a name="server-host-key-rotate"></a>

您可以定期輪換伺服器主機金鑰。本主題說明伺服器如何選擇要套用的金鑰，以及輪換這些金鑰的程序。

## 用戶端如何選擇伺服器主機金鑰
<a name="server-key-behavior"></a>

Transfer Family 選擇要套用的伺服器金鑰取決於 SFTP 用戶端的條件，如此處所述。假設有一個較舊的金鑰和一個較新的金鑰。
+ SFTP 用戶端沒有該伺服器的先前公有主機金鑰。用戶端第一次連線到伺服器時，會發生下列任一情況：
  + 如果設定連線，用戶端會失敗。
  + 或者，用戶端會選擇第一個符合可用演算法的金鑰，並詢問使用者是否可以信任該金鑰。若是如此，用戶端會自動更新`known_hosts`檔案 （或用戶端用來記錄信任決策的任何本機組態檔案或資源），並輸入該金鑰。
+ SFTP 用戶端的`known_hosts`檔案中有較舊的金鑰。即使存在較新的金鑰，用戶端也偏好使用此金鑰，無論是針對此金鑰的演算法或其他演算法。這是因為用戶端對其`known_hosts`檔案中的金鑰具有更高層級的信任。
+ SFTP 用戶端在其金鑰檔案中具有新的`known_hosts`金鑰 （在任何可用的演算法中）。用戶端會忽略較舊的金鑰，因為它們不受信任並使用新的金鑰。
+ SFTP 用戶端的 `known_hosts` 檔案中有兩個金鑰。用戶端會依索引選擇符合伺服器所提供可用金鑰清單的第一個金鑰。

Transfer Family 偏好 SFTP 用戶端在其`known_hosts`檔案中擁有所有金鑰，因為這可在連線至 Transfer Family 伺服器時提供最大的彈性。金鑰輪換是根據同一 Transfer Family 伺服器的`known_hosts`檔案中可能存在多個項目。

## 輪換伺服器主機金鑰程序
<a name="server-key-rotate-procedure"></a>

例如，假設您已將下列一組伺服器主機金鑰新增至 Transfer Family 伺服器。


**伺服器主機金鑰**  

| 主機金鑰類型 | 新增至伺服器的日期 | 
| --- | --- | 
| RSA | 2020 年 4 月 1 日 | 
| ECDSA | 2020 年 2 月 1 日 | 
| ED25519 | 2019 年 12 月 1 日 | 
| RSA | 2019 年 10 月 1 日 | 
| ECDSA | 2019 年 6 月 1 日 | 
| ED25519 | 2019 年 3 月 1 日 | 

**輪換伺服器主機金鑰**

1. 新增伺服器主機金鑰。此程序說明於 [新增額外的伺服器主機金鑰](server-host-key-add.md)。

1. 刪除您先前新增之相同類型的一或多個主機金鑰。此程序說明於 [刪除伺服器主機金鑰](server-host-key-delete.md)。

1. 所有金鑰都可見，並且可以處於作用中狀態，具體取決於先前在 中所述的行為[用戶端如何選擇伺服器主機金鑰](#server-key-behavior)。

# 其他伺服器主機金鑰資訊
<a name="server-host-key-other"></a>

您可以選擇主機金鑰以顯示該金鑰的詳細資訊。

![\[主機金鑰詳細資訊主控台畫面。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/server-host-keys-details.png)


您可以刪除主機金鑰，或從伺服器詳細資訊畫面上**的動作**功能表編輯其描述。選取主機金鑰，然後從功能表中選擇適當的動作。

![\[伺服器主機索引鍵動作功能表。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/server-host-keys-actions.png)
