You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VM实例SSH认证次日失效问题求助

SSH认证持续失效问题排查与解决(Node.js环境VM实例)

问题场景

我运行的VM实例仅部署了3个.js文件、配置文件及package.json,前期使用完全正常,但次日突然出现SSH认证失效问题。更换全新SSH密钥后仍无法通过认证,报错信息如下:
SSH Authentication has failed. In order to debug, please analyze the /var/log/auth.log file on the target machine using the serial console. Reading the recent serial port output may also be helpful.

已尝试的操作:

  • 生成并使用新SSH密钥,认证失败;
  • 通过浏览器SSH的「troubleshoot」功能检测,VM及网络状态显示「OK」,但用户权限加载无限期卡住;
  • 新建VM实例解决疑似损坏问题,但次日仍出现相同SSH故障。

核心排查与解决步骤

1. 优先通过串行控制台查看认证日志

利用云平台提供的串行控制台(无需SSH即可登录),执行以下命令定位故障根源:

# 查看最近50条认证日志
tail -n 50 /var/log/auth.log
# 过滤SSH服务相关错误
grep "sshd" /var/log/auth.log | tail -n 30

重点关注以下日志内容:

  • .ssh目录或authorized_keys文件的权限错误(比如权限过宽导致SSH拒绝读取)
  • sshd_config配置被修改(比如禁用了公钥认证)
  • 用户账户异常(比如账户被锁定、所属组变更)

2. 修复SSH权限与配置

如果日志指向权限或配置问题,执行以下操作:

  • 修复用户目录下的SSH文件权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R ${USER}:${USER} ~/.ssh
  • 检查SSH服务核心配置:
grep -E "PubkeyAuthentication|AuthorizedKeysFile|PasswordAuthentication" /etc/ssh/sshd_config

确保PubkeyAuthentication yes,AuthorizedKeysFile路径正确(默认~/.ssh/authorized_keys),修改后重启SSH服务:

systemctl restart sshd

3. 排查Node.js脚本的异常操作

由于实例仅运行Node.js相关内容,需检查是否有脚本意外修改系统配置:

  • 查看Node.js进程的资源访问情况:
ps aux | grep node
# 检查进程是否访问系统关键文件
lsof -p [Node进程PID] | grep -E "/etc|/home"
  • 检查定时任务是否被篡改:
crontab -l
ls -la /etc/cron.*

4. 排查云平台层面的自动变更

如果新建实例次日仍出问题,大概率是云平台的自动化策略导致:

  • 检查实例是否开启了系统自动更新(可能更新SSH服务后重置配置)
  • 确认安全组/防火墙规则未限制SSH端口(默认22)
  • 检查是否有云平台配置管理工具在夜间自动修改实例设置

临时应急方案

若暂时无法定位根因,可添加定时任务每日自动修复SSH权限:

crontab -e
# 添加以下内容,每天凌晨2点执行修复
0 2 * * * chmod 700 /home/${USER}/.ssh && chmod 600 /home/${USER}/.ssh/authorized_keys && chown -R ${USER}:${USER} /home/${USER}/.ssh

内容的提问来源于stack exchange,提问作者Dinocanid America

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:29:49