ssh登录异常(docker+内核参数修改)

在修改内核参数后SSH登录出现异常,包括net.core.somaxconn、net.ipv4.ip_local_port_range等。通过启动Linux单用户模式,修改sshd_config中的UsePAM设置,以及解决nofile限制问题,最终发现内核参数fs.nr_open与limits.conf冲突,删除fs.nr_open并恢复UsePAM设置后,SSH登录恢复正常。
摘要由CSDN通过智能技术生成

ssh登录异常(docker+内核参数修改)

问题

内核参数设置完如下操作后,ssh就无法登录了
net.core.somaxconn = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 1048576
fs.nr_open = 1000000

登录情况:

login as: root
root@10.10.57.107's password:
    ┌──────────────────────────────────────────────────────────────────────┐
    │               • MobaXterm Professional Edition v21.5 •               │
    │               (SSH client, X server and network tools)               │
    │                                                                      │
    │ ➤ SSH session to root@10.10.57.107                                   │
    │   • Direct SSH      :  ✔                                             │
    │   • SSH compression :  ✔                                             │
    │   • SSH-browser     :  ✔                                             │
    │   • X11-forwarding  :(disabled or not supported by server)      │
    │                                                                      │
    │ ➤ For more info, ctrl+click on help or visit our website.            │
    └──────────────────────────────────────────────────────────────────────┘

Last failed login: Tue Jan 10 16:43:33 CST 2023 from 10.11.18.82 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Tue Jan 10 16:25:52 2023 from wjl-sh40411711.opple.com

     ┌────────────────────────────────────────────────────────────────────┐
     │     •    Waiting for the pending transfer to complete...    •      │
     └────────────────────────────────────────────────────────────────────┘


─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Session stopped
    - Press <return> to exit tab
    - Press R to restart session
    - Press S to save terminal output to file

查找

从上面可以看出,我是登录成功了的,但是马上就退出了。

一开始以为是配置 docker 导致问题。从这个方向去查找,百度到一个答案

/etc/ssh/sshd_config 中的UsePAM yes 改成no

因为现在ssh已经登录不了了,启动linux的单用户模式
(这个大家可以百度一下,Linux版本不同,对应的方式不同,我这里展示的centos7的)

  • 出现如下页面后,按e
    在这里插入图片描述
  • 找到linux16这一行,然后 把ro改成rw,最后面添加init=/sysroot/bin/sh
    在这里插入图片描述
  • 然后ctrl+x就进入单用户页面了。这个时候执行chroot /sysroot切换到系统用户。

因为系统目录挂载都是根目录,所以看不了/var/log下面的东西。那就尝试修改一下/etc/ssh/sshd_config 中的UsePAM yes 改成no。发现启动成功了。

进去系统,查看日志:/var/log/secure

…………
Jan 10 15:50:01 localhost crond[16739]: pam_limits(crond:session): Could not set limit for 'nofile': Operation not permitted
Jan 10 16:00:01 localhost  crond[26510]: pam_limits(crond:session): Could not set limit for 'nofile': Operation not permitted
…………

可以看到有报错:Could not set limit for ‘nofile’: Operation not permitted

nofile是/etc/security/limits.conf 这个文件里面配置的。
查看/etc/security/limits.conf

[root@localhost ~]# cat /etc/security/limits.conf
*               soft    nofile            1048576
*               hard    nofile            1048576
*               soft    nproc             655350
*               hard    nproc             655350

百度出来 nofile由内核参数nr_open定义的。意思是nofile和nr_open是一个东西哇。怀疑是不是内核设置了一边最大文件打开数,然后limits里面又被定义了,所以ssh启动有问题了呢? 那我把fs.nr_open = 1000000 这个删除掉是不是就可以了哦。

删除了,然后把sshd.conf 重新改成 UsePAM yes ,重新启动,可以了!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值