

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 轮换服务器主机密钥
<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)。