登錄服務器顯示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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM