求助物理机 SSH 连上后无法执行任何命令是什么原因

345 天前
 AaIT

物理机:CentOS-Stream-8-x86_64-latest-boot.iso

症状就是 SSH 连接上去后无法进行任何控制,如下图

其他正常的机器,如下图

ont01 是物理机 cc 是其他厂商的虚拟机 最明显的区别就是正常 ssh 登录后会显示最后登录时间和当前登录用户的用户名后面是 # 等待输入命令

Last login: Sat May 20 14:20:36 2023 from 172.18.0.3 [root@cc ~]#

类似上面这样,但这个物理机登录上去之后输出了上次登录时间,然后就没了,没有显示当前的用户名无法进行任何控制

就像图片中那样,也可以输入命令但是没有任何反应,即使输入 reboot 也是毫无反应,换行也显示但就是无法执行

不仅远程 SSH 是这样,使用机器自带的 IPMI 连接也是一样,按说 IPMI 就和在机器面前物理操作一样了,然后输入用户名密码登录后也是这样,无法输入任何命令没发控制

通过 IPMI 查看屏幕显示如下:

物理机 IP 不对外网暴露任何端口,全部通过内网管理的,之前也有出现过,只能重启解决 这次稳定了十几天又出现这种问题,机器上的业务运行正常,但有少部分通过 SSH 下发的命令失效了

有没有老哥知道这是什么毛病,怎么会有这种莫名其妙的问题,SSH 无法控制啥都干不了 只能重启服务器才能恢复,网上也没查到太多信息,希望懂得老哥提点下

2773 次点击
所在节点    程序员
23 条回复
julyclyde
345 天前
你按一下 ctrl+C 试试
应该是 rc 或者 profile 里运行了一直没完成的程序导致的

或者是系统资源耗尽无法产生新进程导致的
AaIT
345 天前
@julyclyde 感谢大佬指点,通过 ctrl+C 恢复控制了,但是前面变成 -bash-4.4 如图
![正常]( )

能控制终于可以查下原因了,发现有个虚拟机进程 qemu-system-x86 持续大量占用 CPU 可能是这个原因导致的
![CPU 异常]( )

把对应虚拟机强制关机重启后,CPU 占用异常问题解决了,但是终端还是进不去,每次还是需要 ctrl+C 执行命令

你说的 “ rc 或者 profile 里运行了一直没完成的程序 ” 应该如何把这些进程清理掉呢
aru
345 天前
先检查下 /root/.bashrc 和 /root/.bash_profile
看下有没有异常
还可以创建一个新用户,用这个普通用户登录进去,看是否正常
AaIT
345 天前
@aru 和正常的机器比对 /root/.bashrc 和 /root/.bash_profile 是一样的,看起来配置文件没啥问题,郁闷呀。。。


hefish
345 天前
某个硬件故障了吧。。导致挂起了。。
多数是磁盘 io 之类的操作。。。
leaflxh
345 天前
有可能是登录上去后,服务器反向 dns 查询登录者的 ip ,但访问不了外网,导致长时间卡住
http://hazirguo.github.io/articles/2018/ssh_login_hang_reasons.html
AaIT
345 天前
@leaflxh 不是这个原因,刚关闭 DNS 查找也是一样,DNS 查找过程是卡在那的,而且查找 DNS 的过程最多几秒钟不得了了,显示出上传登录时间说明已经登录上去了

ctrl+C 可以进入 -bash-4.4

然后输入 source /etc/profile 可以变成正常的 [root@ont01 ~]# 这种
但重新进入还是不行,感觉这个 SSH 有很多毛病,gotop 也绘制不出来了图形了
julyclyde
345 天前
开两个登录,一个正常,一个卡住
然后用正常的那个检查 pstree 看看卡住的那个到底在干什么
AaIT
345 天前
@julyclyde #8 这个办法好
第一个 TOP 是我开的看系统负载的
第二个是当前执行 pstree 的这个终端
第三个不知道是什么,我记得没有开过 SFTP
第四个就是新开的终端,一直开在那的那个终端,除非按 ctrl+C 不然输入不了命令

这个 pidof 是什么鬼,而且现在 SSH 有的命令执行不出来结果,反正很奇怪

这个鬼机器网卡还有 BUG 负载高的时候会大量报错,频繁断网
后来把网卡的分段关掉就好了,ethtool -K eno1 tso off gso off 不知道是不是和这个有关
kernel: e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang:
ovs|16488|bridge|ERR|interface int_31: setting MAC failed (Operation not supported)
ovs-vswitchd[1268]: ovs|16489|bridge|ERR|interface int_34: setting MAC failed (Operation not supported)
ovs-vswitchd[1268]: ovs|16490|bridge|ERR|interface int_33: setting MAC failed (Operation not supported)
ovs-vswitchd[1268]: ovs|16491|bridge|ERR|interface int_38: setting MAC failed (Operation not supported)
ovs-vswitchd[1268]: ovs|16492|bridge|ERR|interface int_29: setting MAC failed (Operation not supported)


我在本地的 centos8 也开了几个测试,结果不太一样
AaIT
345 天前
` -bash-4.4# pstree
systemd-+-agetty
|-api---17*[{api}]
|-2*[aria2c]
|-auditd---{auditd}
|-chronyd
|-crond---231*[crond---sh---php---sh---php---sudo---python]
|-dbus-daemon
|-5*[dnsmasq]
|-flowentryd---flowentryd-+-2*[grep]
| |-ps
| `-wc
|-gssproxy---5*[{gssproxy}]
|-httpd-+-httpd
| |-httpd---80*[{httpd}]
| `-3*[httpd---64*[{httpd}]]
|-influxd---36*[{influxd}]
|-irqbalance---{irqbalance}
|-ksmtuned---ksmtuned---ksmtuned---pgrep
|-libvirtd---47*[{libvirtd}]
|-ovs-vswitchd---17*[{ovs-vswitchd}]
|-ovsdb-server
|-php-fpm---33*[php-fpm]
|-3*[pidof]
|-polkitd---11*[{polkitd}]
|-9*[ps]
|-python2-+-python2---2*[{python2}]
| `-{python2}
|-python2.7
|-3*[qemu-system-x86---9*[{qemu-system-x86}]]
|-13*[qemu-system-x86---4*[{qemu-system-x86}]]
|-qemu-system-x86---8*[{qemu-system-x86}]
|-2*[qemu-system-x86---7*[{qemu-system-x86}]]
|-qemu-system-x86---10*[{qemu-system-x86}]
|-qemu-system-x86---5*[{qemu-system-x86}]
|-qemu-system-x86---25*[{qemu-system-x86}]
|-qemu-system-x86---6*[{qemu-system-x86}]
|-rpcbind
|-rsyslogd---2*[{rsyslogd}]
|-sshd---sshd---bash---top
|-sshd---sshd---bash-+-journalctl
| `-pstree
|-sshd---sshd---sftp-server
|-sshd---sshd---sshd---bash---pidof
|-systemd---(sd-pam)
|-systemd-journal
|-systemd-logind
|-systemd-machine
|-systemd-udevd
|-tailscaled---19*[{tailscaled}]
|-tuned---4*[{tuned}]
|-updaemon---5*[{updaemon}]
|-updaemon_comput---5*[{updaemon_comput}]
|-virtlogd
`-vnstatd
-bash-4.4# `
AaIT
345 天前
ps -ef 还有 pstree -a 还有部分系统命令执行后输出结果后就停在那里,无法自动退出状态
感觉就像被粘住了一样,按 ctrl+C 才可以退出之前的状态,看起来和 SSH 刚连接成功后是一样的情况
SSH 是连接上了,但是后台什么东西卡住了导致指令没有结束一直卡在那里,所以什么命令都无法输入
而按 ctrl+C 就强制中断之前的又可以输入了,
julyclyde
345 天前
@AaIT pidof 是查找某个进程的进程号用的
一般是在 init 脚本里使用
所以还是我之前猜的,你这个大概是在 profile/rc 里启动后台服务了吧

pstree 加-pa 参数看看
julyclyde
345 天前
你这系统里问题比较多:
1 cron 里 sudo 也可能有些问题。不过是另案了
2 有多个 sshd 在第一层
3 有多个 python 在第一层
AaIT
345 天前
@julyclyde #12 -pa 会卡住,无法输出任何内容, -p 倒是可以看到一大堆进程


-p 输出非常多的进程


你说的 rc 是 /etc/rc.local 吗,魔方云在里面放了个开机自启的玩意,但是这个不是开机时候才执行一次来着
AaIT
345 天前
@julyclyde #13 前段时间执行了一次 yum updata
感觉可能很多东西有点不对了,没有 updata 之前是没有明显异常
感觉要重装系统重新部署下了,主要是新机器没到位,这个也不能动 郁闷呀
8520ccc
345 天前
以前遇到过类似的情况 su - root 或者 sudo -i 应该可以恢复命令行状态
barathrum
345 天前
已经提示是 hang task 了,用 ps 找 d 状态的进程,分析一下他在干什么,比如看看 pid 下的 stack ,hang 在哪了。
BaseException
345 天前
cpu 100%占用了 我有个机器遇到过
AaIT
345 天前
@barathrum 可能找到原因了,昨天 22:07:54 内核日志记录有很多条进程 D 状态的消息



现在看的话只有一个进程处于 D 状态



后台虚拟机的所有流量和内存统计也停在 22:00 之后就没有记录了
虽然虚拟机在正常运行,但信息收集部分出问题了

前二天记录都正常,SSH 连接也正常,现在 SSH 也出现了异常,不知道是不是也是这个原因导致的
AaIT
345 天前
@BaseException 百分百也是个问题,可能是因为 ksmd 变成 D 状态导致无法约束虚拟机了
这个只能发给魔方公司的人去看了,小问题确实不少,现在这样只能重启了,距离上次重启稳定了 10 天
上次是把断网的问题给解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/941522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX