CloudCone VPS 修改 root 密码后 SSH 密钥登录失效怎么办

文章导读
修改 root 密码本身不会直接导致 SSH 密钥失效,但如果面板重置流程触发了配置还原或权限变更,需要透过控制台检查 sshd 配置和密钥文件权限。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
A A

修改 root 密码本身不会直接导致 SSH 密钥失效,但如果面板重置流程触发了配置还原或权限变更,需要透过控制台检查 sshd 配置和密钥文件权限。

先说结论:密码修改与密钥认证相互独立,失效通常是权限或配置被连带修改所致,优先通过 VNC 控制台修复。

  • 先确认:能否通过面板 VNC 控制台登录系统
  • 先处理:检查 ~/.ssh 目录及 authorized_keys 文件权限
  • 再验证:使用 ssh -v 查看客户端拒绝原因

命令速用版

chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh
sshd -t && systemctl restart sshd

为什么会这样

SSH 密钥认证和密码认证在 Linux 系统中是两套独立的机制,修改密码理论上不影响密钥文件。但在实际运维中,部分服务商的重置密码脚本可能会重置部分系统配置,或者因重启导致文件所有权变更。此外,SSH 守护进程默认开启 StrictModes,如果密钥文件或目录权限过于开放(例如其他用户可写),sshd 会出于安全考虑拒绝使用密钥登录。

分步处理

1. 通过 CloudCone 客户中心的 VNC 控制台登录服务器,避免被锁在门外。

CloudCone VPS 修改 root 密码后 SSH 密钥登录失效怎么办

2. 检查 SSH 配置文件,确认密钥认证未被禁用:

grep -E "PubkeyAuthentication|PermitRootLogin" /etc/ssh/sshd_config

确保 PubkeyAuthentication 为 yes,PermitRootLogin 包含 yes 或 prohibit-password。

3. 修复密钥文件权限,这是最常见的问题点:

CloudCone VPS 修改 root 密码后 SSH 密钥登录失效怎么办
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh

4. 测试配置语法并重启服务:

sshd -t
systemctl restart sshd

怎么验证是否生效

在本地终端使用详细模式尝试连接,观察认证过程:

ssh -v root@你的 VPS IP

如果看到 "Offering public key" 随后出现 "Authentication succeeded",说明密钥恢复生效。如果显示 "Permission denied (publickey)",请检查服务端 /var/log/auth.log 日志。

CloudCone VPS 修改 root 密码后 SSH 密钥登录失效怎么办

常见坑

1. 不要在未确认密钥可用前,在 sshd_config 中关闭密码登录(PasswordAuthentication no),否则一旦密钥失效将无法远程连接。

2. 部分面板重置密码后会强制重启系统,确保重启后 .ssh 目录未被重置为空。

3. 如果使用 SELinux 系统(如 CentOS),权限正确仍无法登录,需检查 SELinux 上下文是否被破坏。