SSH 为您提供从自己的终端访问云服务器的 root shell,您需要的每个连接细节都显示在 KPanel 中的服务器页面上,随时可以复制。
云服务器完全属于您,从操作系统开始,这意味着大多数工作发生在命令行上。本指南涵盖查找连接详情、使用密钥或密码连接、正确设置密钥、浏览器控制台备选方案,以及导致几乎所有连接失败的常见错误。
查找连接详情
- 登录 KPanel。
- 单击左侧边栏中的云服务器,然后单击您的服务器。
- 找到连接卡片。
该卡片包含三个复制到剪贴板的字段:
| 字段 | 描述 |
|---|---|
| SSH 命令 | 一个完整的命令,随时可以粘贴到您的终端中 |
| IPv4 地址 | 服务器的公共 IPv4 地址 |
| IPv6 地址 | 服务器的 IPv6 地址,分配后显示 |

如果卡片显示"IP 地址将在配置完成后显示在此处",则服务器仍在构建中。配置云服务器大约需要 60 秒,完成后页面会自动更新。
使用 SSH 密钥连接
如果您在订购服务器时在SSH 公钥字段中粘贴了公钥,密钥身份验证已配置,无需输入密码。
- 从连接卡片复制 SSH 命令。
- 将其粘贴到您的终端并按 Enter。
ssh root@203.0.113.1
您的 SSH 客户端会找到匹配的私钥并自动进行身份验证。如果您的密钥位于非标准位置,请明确指向它:
ssh -i ~/.ssh/my-kapsule-key root@203.0.113.1
密钥既比密码更容易,也更安全。没有任何东西需要记住,没有任何东西需要输入到钓鱼提示中,自动密码猜测攻击也无法找到任何东西。如果您仍在使用密码,生成密钥并将其添加大约需要两分钟。
首次设置密钥
在您自己的机器上生成密钥对,而不是在服务器上:
ssh-keygen -t ed25519 -C "your-email@example.com"
按 Enter 以接受默认位置,并在提示时设置通行短语。您现在有两个文件:
~/.ssh/id_ed25519是您的私钥。它永远不会离开您的机器,您永远不会将其粘贴到任何地方。~/.ssh/id_ed25519.pub是您的公钥。这是您提供给服务器的密钥。
打印公钥并复制整个单行,包括 ssh-ed25519 前缀和末尾注释:
cat ~/.ssh/id_ed25519.pub
订购服务器时,将该行粘贴到SSH 公钥字段中。该字段的提示已明确说明: "粘贴您的公钥以启用基于密钥的身份验证。如果留空,将向您发送一个 root 密码。"
永远不要粘贴没有 .pub 结尾的文件内容。那是您的私钥,拥有它的任何人都可以在信任它的每台服务器上以您的身份登录。如果您曾经意外共享过私钥,请立即生成新对并替换所有地方的公钥。
要将密钥添加到您已有的服务器,请使用当前的任何方式连接,并将公钥行追加到 /root/.ssh/authorized_keys。
使用密码连接
如果您在订购时将SSH 公钥字段留空,则在服务器配置后会向您发送一个 root 密码。
- 从连接卡片复制 SSH 命令。
- 将其粘贴到您的终端并按 Enter。
- 在提示处输入发送的 root 密码。
进入后立即使用 passwd 更改该密码,并在此期间添加 SSH 密钥。发送的密码传输的距离超过了凭证应该传输的距离。
浏览器控制台
浏览器控制台在 KPanel 内提供一个终端,无需 SSH 客户端,无需通过端口 22。这是当您自己的访问出现问题时的工具。
- 打开服务器页面,单击操作按钮中的浏览器控制台,或转到
/cloud-servers/<server-id>/console。 - 单击启动控制台。KPanel 在服务器后面使用一次性凭证通过 HTTPS 启动终端。
- 用户名和密码显示在页面上,有一个复制凭证按钮。终端在页面内打开,您的浏览器可能会提示您输入这些凭证。
- 像在任何 shell 中一样工作。
控制台会话在 30 分钟后自动停止。启动新会话会颁发新凭证,因此完成后没有任何东西继续监听。浏览器控制台还需要在服务器上配置带 HTTPS 的域,这意味着通过面板安装的应用。在裸服务器上,控制台会告诉您这一点,而不是无声失败。
使用控制台撤销将您锁定的防火墙规则,重置密码或修复 sshd 配置。一旦您通过 SSH 正常返回,就不需要再次使用它了。
保持 SSH 访问安全
端口 22 始终在 KapsuleHost 服务器防火墙上开放,这是设计特意为之,因此防火墙更改永远无法将您完全锁定在机器之外。
这意味着您的 shell 安全取决于您如何进行身份验证,而不是隐藏端口。两件事做了大部分工作:
- 使用密钥,而不是密码。 这样猜测的密码就不是进入的方式。
- 保持 fail2ban 开启。 它默认启用,并禁止重复失败 SSH 身份验证的地址。您可以在服务器的管理页面上看到该开关。
云服务器防火墙和安全管理 涵盖两者,以及您自己的应用程序需要的端口的自定义规则。
故障排除
"连接被拒绝。" 没有任何东西在监听。检查服务器在 KPanel 中是否显示运行中,如果关闭则打开它,并使用浏览器控制台检查 sshd 是否正在运行。
"连接超时。" 流量未到达。确认您使用的是连接卡片中的 IPv4 地址,并检查您自己的网络是否阻止出站端口 22。公司或校园网络有时会这样做。
"权限被拒绝(publickey)。" 服务器不认识您的密钥。确认您粘贴了完整未更改的 .pub 行,并且您的客户端提供了匹配的私钥。将 -v 添加到 ssh 命令以查看它尝试过的密钥。
密码时"权限被拒绝,请重试"。 密码错误,或因为您提供了密钥而禁用了密码身份验证。使用密钥或浏览器控制台。
"远程主机识别已更改。" 服务器的主机密钥与您的客户端记住的不同。这在 重建 后是预期的,因为操作系统被重新安装了。从 known_hosts 文件中移除该 IP 地址的过时条目并重新连接。如果您没有重建任何东西,请在连接之前停止并与我们联系。
我使用防火墙规则将自己锁定了。 端口 22 保持开放,所以这不寻常,但如果服务器内的规则阻止了您,请使用浏览器控制台将其删除。
如果以上都无法让您获得 shell,请通过电子邮件向 support@kapsulehost.com 发送服务器名称、您连接的地址和确切的错误文本。