搜索

centos登陆上立马掉

发表于 2026-10-17 06:19:16 来源:烟消火灭网

SSH 输完密码,登陆光标闪了一下,上立屏幕刚跳出 CentOS 的马掉欢迎信息,连接就断了。登陆反复试了五六次,上立每次都一样。马掉这不是登陆网络抖动,是上立系统在登录瞬间把会话掐掉了。

我最早遇到这个问题是马掉在一台跑了两年多的老服务器上。当时第一反应是登陆 sshd 配置有问题,翻了一遍 /etc/ssh/sshd_config,上立没发现异常。马掉后来用 ssh -v 看详细日志,登陆发现认证阶段完全正常,上立问题出在认证之后——shell 刚启动就被终止。马掉

这种“登录即掉”的现象,原因通常集中在几个地方。我按排查顺序说。

磁盘满了

这是最常见的情况,尤其是 / 或 /home 分区写满。CentOS 在用户登录时会尝试写入一些临时文件、更新 .bash_history、检查 mail spool,如果磁盘没有空间,PAM 模块可能直接拒绝会话。更隐蔽的是 /var 满了导致日志写不进去,某些 PAM 模块超时后踢人。

排查方法很简单:用 root 通过其他方式(比如控制台、或者单用户模式)登进去,跑 df -h。如果看到某个分区 Use% 是 100%,基本就锁定了。清理掉大文件再试,大概率恢复正常。

有个细节:df -h 显示没满,但 df -i 显示 inode 用完了,也会出现同样症状。小文件太多把 inode 耗尽是容易被忽略的坑。

PAM 配置或环境问题

CentOS 的登录流程依赖 PAM。如果 /etc/pam.d/sshd 或 /etc/pam.d/system-auth 被改坏了,比如引用了不存在的模块、pam_limits.so 加载失败,用户认证通过后会在会话初始化阶段被拒绝。

另一种情况是 /etc/profile 或 /etc/bashrc 里有死循环、语法错误、或者执行了一个永远挂起的命令。shell 启动时读这些文件,卡住之后 sshd 等待超时,直接断开。我见过一次是 /etc/profile.d/ 下有人放了个脚本,里面写了个 while true 没加退出条件,所有用户登录全部秒断。

判断方法:用 ssh -t user@host bash --noprofile --norc 试试能不能进去。如果能,说明问题出在 shell 初始化脚本里。

家目录权限不对

用户家目录的权限或属主被改错,也会导致登录失败。比如家目录变成 root:root 且权限是 700,普通用户进去之后无法写入,某些 PAM 模块(pam_mkhomedir、pam_oddjob_mkhomedir)会报错并终止会话。

正确状态一般是:家目录属主是用户本人,权限 700 或 755,里面的 .ssh 目录权限 700,authorized_keys 权限 600。用 ls -la /home/ 扫一眼就能看出来。

SELinux 在捣乱

CentOS 默认开 SELinux。如果文件上下文被意外修改,比如用 cp 而不是 cp -Z 复制了家目录内容,SELinux 可能阻止 sshd 访问用户的家目录,导致会话建立失败。

临时验证:setenforce 0 之后再试登录。如果好了,就去查 /var/log/audit/audit.log 里的 AVC 拒绝记录,用 restorecon -Rv /home/user 恢复上下文。

sshd 的 MaxSessions 或资源限制

还有一种不太常见但确实存在的情况:sshd_config 里 MaxSessions 设得太小,或者 /etc/security/limits.conf 里对用户做了极端的进程数/文件数限制。用户一登录,shell 还没来得及输出提示符就触发了限制被 kill。

这类问题通常伴随 /var/log/secure 里的 pam_limits 报错,查日志能对上。

我的经验是,先看 /var/log/secure,里面会写清楚是哪个阶段断的。然后按磁盘、PAM、权限、SELinux 的顺序过一遍,大部分情况十分钟内能定位。别一上来就重装 sshd,方向不对白费功夫。

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by centos登陆上立马掉,烟消火灭网   sitemap

回顶部