微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux 登录服务器 提示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),但是同时也意味着消耗更多的资源,所以基本上在物理机上才会遇到这种问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐