# 添加和管理 SSH 密钥

Source: https://support.kapsulehost.com/zh-cn/cloud-servers-ssh-keys

SSH 密钥让您无需密码即可登录服务器。它比密码更安全，使用起来也更快捷。本指南介绍如何创建密钥、在订购前将其添加到您的账户，以及如何移除不再使用的密钥。

## SSH 密钥的工作原理

SSH 密钥由两部分组成：

- **私钥** 保留在您自己的电脑上。切勿将其粘贴到任何地方或与他人分享。
- **公钥** 是您提供给服务器的那一部分。可以安全地分享。

连接时，您的电脑会证明它持有与服务器上某个公钥相匹配的私钥。整个过程不会发送密码。

## 创建密钥

请在您自己的电脑上创建密钥，而不是在服务器上。在 macOS、Linux 或 Windows（PowerShell 或 Windows Terminal 中）运行：

```
ssh-keygen -t ed25519 -C "you@example.com"
```

按 Enter 接受默认的保存位置，然后在提示时设置一个密码短语。现在您有两个文件：

- `~/.ssh/id_ed25519` 是您的私钥。
- `~/.ssh/id_ed25519.pub` 是您的公钥。

要查看您的公钥，请运行：

```
cat ~/.ssh/id_ed25519.pub
```

复制整行内容，从 `ssh-ed25519` 开始。

> **Warning:** 只复制以 `.pub` 结尾的文件。另一个文件是您的私钥，任何拥有它的人都可以登录所有信任它的服务器。如果您不小心分享了它，请创建一个新密钥，并在所有地方替换旧密钥。

## 您账户的 SSH 密钥

SSH 密钥属于您的账户，而不是某一台服务器。每台新服务器在订购时都要附带一个密钥，上线时您就用它登录。请在侧边栏中服务器栏目旁边的 **SSH 密钥** 页面添加您的密钥。即使您还没有任何服务器，这个页面也可以使用，因此您可以先添加密钥再订购。每台服务器的 **SSH 密钥** 选项卡上也有同样的列表。

添加密钥：

1. 在侧边栏中点击 **SSH 密钥**，或打开任意一台服务器，在其菜单中点击 **SSH 密钥**。
2. 点击 **添加 SSH 密钥**。
3. 输入一个 **名称**，例如“我的笔记本电脑”，并将 `.pub` 文件中的整行内容粘贴到 **公钥** 中。
4. 点击 **添加密钥**。KPanel 会提示密钥已添加。

![KPanel 中服务器的 SSH 密钥选项卡](https://support.kapsulehost.com/help/screenshots/cloud-servers-ssh-keys.2f07b4bd.webp)

推荐使用 Ed25519 密钥。RSA 密钥必须至少为 3072 位，ECDSA 密钥也可以使用。一个账户最多可以保存 50 个密钥，同一个密钥不能添加两次。

要重命名密钥，请点击其旁边的铅笔图标。要删除密钥，请点击垃圾桶图标，然后点击 **删除密钥**。点击密钥的 **指纹** 即可复制它。

> **Warning:** 在这里添加密钥并不会把它放到已经存在的服务器上。它会提供给您添加之后订购的服务器。在这里删除密钥也不会把它从服务器上移除：请按下文所示，在每台服务器上也将其移除。

## 为新服务器添加密钥

在订购的 **SSH 密钥和名称** 步骤中，勾选每个可以以 root 身份登录的密钥。您可以选择多个，每次订购最多 20 个。要在这里添加新密钥，请点击 **添加 SSH 密钥**，输入 **密钥名称**，粘贴 **公钥**，然后点击 **添加密钥**。它会保存到您的账户并被勾选。Windows 服务器使用密码登录，因此不使用 SSH 密钥。

如果您之后重建服务器，这里勾选的密钥会被放回。订购之后添加的密钥不会被放回。

## 为您可以访问的服务器添加密钥

如果您已经可以登录服务器，可以将另一个公钥追加到您登录所用用户的 `authorized_keys` 文件中。对于 root 用户：

```
echo "ssh-ed25519 AAAA... you@example.com" >> /root/.ssh/authorized_keys
```

请用您自己的公钥行替换示例内容。然后打开一个新终端，在关闭当前会话之前，确认您可以使用该密钥登录。

## 移除密钥

要让某个密钥失效，请登录服务器并从 `authorized_keys` 中删除它所在的行：

```
nano /root/.ssh/authorized_keys
```

删除该密钥所在的行，保存文件，然后关闭编辑器。在笔记本电脑丢失、有人离开您的团队或您更换密钥时，请执行此操作。

KapsuleHost 会在我们构建的每台服务器上保留一个管理密钥（名为 kapsulehost-management），用于备份、监控和安全更新。删除该密钥会停止这些功能。

> **Note:** 您在服务器内部自行添加的密钥存储在其磁盘上，因此[重建](https://support.kapsulehost.com/zh-cn/cloud-servers-rebuild)会将其清除。

## 网站的密钥

我们托管服务中网站的 SSH 访问与服务器是分开的。对于网站，请前往 **网站**，打开该站点，然后进入 **SSH 密钥**。

## 相关文章

- [通过 SSH 连接到您的服务器](https://support.kapsulehost.com/zh-cn/cloud-servers-ssh-connect)
- [创建服务器](https://support.kapsulehost.com/zh-cn/cloud-servers-create)
- [救援模式](https://support.kapsulehost.com/zh-cn/cloud-servers-rescue)
- [重建服务器](https://support.kapsulehost.com/zh-cn/cloud-servers-rebuild)
