问题引入
起初以为是系统没启动成功,等待几分钟后依然无法登陆系统。
ssh工具报错
VNC登陆报错
机器网络正常通讯 宝塔服务依然运行
首先第一步 进入救援系统
进入救援系统后 正常挂载原系统盘
由此可见 vdb1有100G磁盘 我们云服务器刚好购买的100G磁盘 所以只需要挂载vdb1即可
这里我把系统盘挂载到 tmp/mylinux目录里
如需访问查看原系统内的文件 路径就是 /tmp/mylinux/www/wwwroot/
由于我们密码登录不上 所以先按照惯例检查shadow文件
执行命令ls -l /tmp/mylinux/etc/shadow 
此时系统返回权限为 rwxrwxrwx 也就是777权限
正常情况该文件权限为-rw------- 也是600权限
所以密码文件被动过(可能是自己无意间 也可能是被黑)
下面执行修复过程
首先进入到系统里
chroot /tmp/mylinux
然后修复关键文件权限
由于不知道具体要修复什么文件 先把文件权限恢复为默认
rpm --setperms -a (要跑大概1分钟)
rpm --setugids -a(要跑大概1分钟)
分别等待命令跑完 退出救援系统登陆即可
----------------------------------------------------------------------------------------------------------------------------
这里提示一下 我测试的机器由于给全目录777 导致sshd不正常 状态为 ping通 vnc可以登陆 ssh不能登陆
vnc登陆查看sshd状态报错 如下
sshd 服务启动失败,是因为 SSH 主机私钥文件权限太开放(被 chmod -R 777 /etc 改成了 777/666 这类权限),OpenSSH 出于安全考虑,拒绝加载不安全的私钥,直接退出了。
再执行下面的命令修复一下即可
# 修复所有 SSH 主机私钥权限(必须 600,仅 root 可读写)
chmod 600 /etc/ssh/ssh_host_*_key
# 修复公钥权限(必须 644,所有人可读)
chmod 644 /etc/ssh/ssh_host_*_key.pub
# 修复 sshd 主配置文件权限
chmod 600 /etc/ssh/sshd_config
# 修复 /etc/ssh 目录本身权限
chmod 755 /etc/ssh
# 重启 sshd 服务
systemctl restart sshd
# 验证服务状态
systemctl status sshd
