V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AaIT
V2EX  ›  程序员

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

  •  
  •   AaIT · 314 天前 · 2707 次点击
    这是一个创建于 314 天前的主题,其中的信息可能已经有所发展或是发生改变。

    物理机: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 无法控制啥都干不了 只能重启服务器才能恢复,网上也没查到太多信息,希望懂得老哥提点下

    23 条回复    2023-05-21 14:07:58 +08:00
    julyclyde
        1
    julyclyde  
       314 天前   ❤️ 1
    你按一下 ctrl+C 试试
    应该是 rc 或者 profile 里运行了一直没完成的程序导致的

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

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

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

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


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

    ctrl+C 可以进入 -bash-4.4

    然后输入 source /etc/profile 可以变成正常的 [root@ont01 ~]# 这种
    但重新进入还是不行,感觉这个 SSH 有很多毛病,gotop 也绘制不出来了图形了
    julyclyde
        8
    julyclyde  
       314 天前
    开两个登录,一个正常,一个卡住
    然后用正常的那个检查 pstree 看看卡住的那个到底在干什么
    AaIT
        9
    AaIT  
    OP
       314 天前
    @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
        10
    AaIT  
    OP
       314 天前
    ` -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
        11
    AaIT  
    OP
       314 天前
    ps -ef 还有 pstree -a 还有部分系统命令执行后输出结果后就停在那里,无法自动退出状态
    感觉就像被粘住了一样,按 ctrl+C 才可以退出之前的状态,看起来和 SSH 刚连接成功后是一样的情况
    SSH 是连接上了,但是后台什么东西卡住了导致指令没有结束一直卡在那里,所以什么命令都无法输入
    而按 ctrl+C 就强制中断之前的又可以输入了,
    julyclyde
        12
    julyclyde  
       314 天前
    @AaIT pidof 是查找某个进程的进程号用的
    一般是在 init 脚本里使用
    所以还是我之前猜的,你这个大概是在 profile/rc 里启动后台服务了吧

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


    -p 输出非常多的进程


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



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



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

    前二天记录都正常,SSH 连接也正常,现在 SSH 也出现了异常,不知道是不是也是这个原因导致的
    AaIT
        20
    AaIT  
    OP
       314 天前
    @BaseException 百分百也是个问题,可能是因为 ksmd 变成 D 状态导致无法约束虚拟机了
    这个只能发给魔方公司的人去看了,小问题确实不少,现在这样只能重启了,距离上次重启稳定了 10 天
    上次是把断网的问题给解决了
    BaseException
        21
    BaseException  
       313 天前 via iPhone
    @AaIT #20 嗯嗯 我之前是中了 xmrig 门罗币挖矿病毒。。
    barathrum
        22
    barathrum  
       313 天前
    @AaIT 可以试试先把 ksmd 停掉,这玩意好像是影响虚拟机内存使用的?说不定停了就好了:)
    AaIT
        23
    AaIT  
    OP
       313 天前
    @barathrum #22 嗯嗯,暂时先不管了,也不影响虚拟机运行,流量不统计就不统计了,等新机器到位虚拟机迁移后重装系统,搞得都有点阴影了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2843 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:57 · PVG 20:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.