作者小头像 Lv.3
353 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
335
18
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

他的回复:
先定性:能立刻看到 Permission denied,说明 TCP 22 端口已通、sshd 已应答,问题在认证环节;如果是安全组没放行 22 端口,现象一般是连接超时,而不是立刻被拒绝。所以排查重点是用户名、凭证和 sshd 认证开关,按下面顺序走。 1. 先看 ssh -v 输出区分执行 ssh -v -i 私钥文件 用户名@公网IP。Permission denied (publickey) 说明服务端根本没接受这把密钥;出现 (publickey,password) 且密码也被拒,说明服务端可能禁了密码登录或账号本身有问题。先看服务端允许的认证方式,再看本地有没有真正递交公钥,不要只凭感觉换密钥。 2. 服务端:权限、公钥内容、sshd 配置、日志通过控制台 VNC 或远程登录进系统核查,因为 VNC 不走 sshd。~/.ssh 目录权限应为 700,authorized_keys 权限应为 600,属主必须是登录用户本人。authorized_keys 里必须是单行 OpenSSH 公钥,不能断行,也不能带 Windows 换行符或多余空格。检查 /etc/ssh/sshd_config 里的 PubkeyAuthentication yes、PasswordAuthentication、PermitRootLogin、AuthorizedKeysFile,改后重启 sshd。查 /var/log/secure 或 /var/log/auth.log 里 sshd 的拒绝原因,日志会直接写明是权限问题、用户不存在还是配置拦截。 3. 客户端:私钥、密钥对、格式私钥文件权限应为 600,ssh 命令里用 -i 明确指定私钥。执行 ssh-keygen -y -f 私钥 导出公钥,与 authorized_keys 里那行逐字符比对,确认是同一对密钥。PuTTY 的 .ppk 要先转成 OpenSSH 格式再用。确认控制台上实例绑定的密钥对是不是现在手里这把,换过密钥对要重新绑定并按控制台提示生效,不要只看名称对上了就默认实例里已经是这把公钥。 4. 密码也被拒可能是 PasswordAuthentication no、账号被锁定或密码过期、安全组没放 22 端口。先用控制台 VNC 或远程登录进系统核查账号状态和 sshd 配置,或用控制台重置密码、重置密钥对。注意:如果创建实例时只选了密钥对登录,实例内可能本来就没有可用密码,这时密码被拒不是密码记错,而是需要先在控制台重置密码并确认密码登录已放开。 5. 兜底先做快照备份,再用救援模式挂载系统盘修复 authorized_keys 与权限,不要直接重装丢数据。修复后保持 VNC 会话不要断,另开一个窗口用新凭证验证一次,确认能登录后再收尾。
发布时间 2026/10/28 14:22:26 最后回复 yd_292978551 2026/10/30 10:20:25 版块 开发者空间
131 22 0
发布时间 2026/10/26 10:55:17 最后回复 yd_286814013 2026/11/01 00:51:39 版块 开发者空间
92 5 0
发布时间 2026/10/25 17:44:49 最后回复 yd_226757564 2026/10/25 18:23:48 版块 开发者空间
27 2 0