登录服务器显示Permission denied且ssh登录立即退出( Exit status 254)

系统版本:CentOS Linux release 7.7.1908 (Core) 内核:4.18.12-1.el7.elrepo.x86_64

1、故障

下午初始化完一台服务器后,登录显示Permission denied,查看一开始以为是密码有问题,进入单用户模式把密码改成123456了,然后重启,登录还是报Permission denied;后来ssh -v IP查看,密码认证环节已通过,系统有种登录后立马退出的现象,因为升级了内核,以为是升级了内核导致的,选择最初的内核版本启动还是报错,郁闷,后来在网上找了一些文档,什么root被禁止啥的,都没解决问题

2、问题确认

后来仔细查看初始化脚本,其中有项设置最大连接数的配置引起注意,值设置为了10240000,然后想这个值是不是不能超出某个默认参数的值,然后在单用户模式下把值改为了65536,重启服务器 ,然后就可以登录了,找到问题原因所在,于是去找资料,为啥设置成10240000就不行了呢?后来找到一篇博客,发现 open file(s) kernel 级别有 2 个配置,fs.nr_open,进程级别;fs.file-max,系统级别

fs.nr_open 默认设置的上限是 1048576,所以用户的openfile(s) 不可能超过这个上限。

# sysctl -w fs.nr_open=20480000
# ulimit -n 10240000
# ulimit -n
10240000

修改后即可设置更大的 openfile(s) 了。

同样,对于 kernel 参数的修改,sysctl 命令修改的是当前运行时,如果需要永久修改, 则将配置添加到 /etc/sysctl.conf 中,例如:

# echo "fs.nr_open = 20480000" >> /etc/sysctl.conf
# echo "fs.file-max = 10000000" >> /etc/sysctl.conf

不过,增大这些值意味着能够打开更多的文件(在 Linux 中,everything is file,包括 socket),但是同时也意味着消耗更多的资源,所以基本上在物理机上才会遇到这种问题

参考链接

http://www.chengweiyang.cn/2015/11/14/how-to-enlarge-linux-open-files-upper-cell/

猜你喜欢

转载自www.cnblogs.com/uglyliu/p/12367916.html