修改 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 控制台登录服务器,避免被锁在门外。
2. 检查 SSH 配置文件,确认密钥认证未被禁用:
grep -E "PubkeyAuthentication|PermitRootLogin" /etc/ssh/sshd_config确保 PubkeyAuthentication 为 yes,PermitRootLogin 包含 yes 或 prohibit-password。
3. 修复密钥文件权限,这是最常见的问题点:
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh4. 测试配置语法并重启服务:
sshd -t
systemctl restart sshd怎么验证是否生效
在本地终端使用详细模式尝试连接,观察认证过程:
ssh -v root@你的 VPS IP如果看到 "Offering public key" 随后出现 "Authentication succeeded",说明密钥恢复生效。如果显示 "Permission denied (publickey)",请检查服务端 /var/log/auth.log 日志。
常见坑
1. 不要在未确认密钥可用前,在 sshd_config 中关闭密码登录(PasswordAuthentication no),否则一旦密钥失效将无法远程连接。
2. 部分面板重置密码后会强制重启系统,确保重启后 .ssh 目录未被重置为空。
3. 如果使用 SELinux 系统(如 CentOS),权限正确仍无法登录,需检查 SELinux 上下文是否被破坏。
原文链接:https://www.zjcp.cc/ask/10225.html
