问题现象
用MobaXterm工具ssh远程CentOS7服务器,出现了如下错误:
Server refused to start a shell/command
原因
以下为可能的原因:
1.如上图所示,服务器内存不足;
2.ssh创建过的连接会话数过多。
解决方法
方法1:
以root用户登录并终止连接已报错的系统用户的所有进程:
pkill -KILL -u username
注:此法对我有效。
如果用户中有重要进程不能kill掉,慎用。可以使用如下命令杀死指定的用户终端:
[root@localhost ~]# pkill [-t 终端号] 进程名
该命令实操过程:
[root@localhost ~]# w
#使用w命令查询本机已经登录的用户
20:06:34 up 28 min, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root ttyl - 19:47 18:52 0.01s 0.01s -bash
root pts/0 192.168.0.100 19:47 0.00s 0.09s 0.04s w
root pts/1 192.168.0.100 19:51 14:56 0.02s 0.02s -bash
#当前主机已经登录了三个root用户,一个是本地终端ttyl登录,另外两个是从192.168.0.100登陆的远程登录
[root@localhost ~]# pkill -9 -t pts/1
#强制杀死从pts/1虚拟终端登陆的进程
[root@localhost ~]# w
20:09:09 up 30 min, 2 users, load average: 0.00, 0.00,0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root ttyl - 19:47 21:27 0.01s 0.01s -bash
root pts/0 192.168.0.100 19:47 0.00s 0.06s 0.00s w
#虚拟终端pts/1的登录进程已经被杀死了
方法2:
修改文件 /etc/security/limits.d/20-nproc.conf 中的nproc个数4096为最大65535
修改前
soft nproc 4096
修改后
soft nproc 65535
修改文件 /etc/ssh/sshd_config 下面两个注释放开
修改前:
#MaxSessions 10
#MaxStartups 10:30:100
修改后:
MaxSessions 10
MaxStartups 10:30:100
重启网络
systemctl restart network