SSH远程Ulimit不生效

2023-05-16

SSH远程Ulimit不生效

问题描述

操作系统/etc/security/limits.conf文件内容如下:


* soft memlock unlimited

* hard memlock unlimited

使用远程连接工具moba连接到服务器,使用 ulimit -a 查看ulimit值,与 /etc/security/limits.conf 文件配置是一致的。

当使用ssh命令行远程连接时,使用 ulimit -a 查看ulimit值,为默认值,与 /etc/security/limits.conf 文件配置是不一致的。

运维程序远程启动系统时,使用的是ssh连接过去执行,ssh连接中的ulimit值不生效,导致系统无法使用RDMA,因为默认的memlock配置过小。

排查

经过一系列的排查,发现客户环境ssh版本(OpenSSH_8.4p1)与操作系统默认的ssh版本(OpenSSH_7.4p1)不一致,怀疑客户重新编译的版本导致远程ssh登录limit值不生效。
同时/etc/ssh/sshd_config文件的UsePAM值为no,当该项配置为yes后重启sshd服务器,查看系统日志报错如下:
在这里插入图片描述

怀疑重新升级编译ssh为加–with-pam(默认不编译这个模块),导致该问题。

解决

建议客户重新编译openssh版本,编译时带上–with-pam参数。客户操作后问题解决。

建议

后续openssh版本升级编译,需要带上–with-pam参数。

扩展

PAM模块介绍

Linux-PAM(即linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。换句话说,不用(重新编写)重新编译一个包含PAM功能的应用程序,就可以改变它使用的认证机制,这种方式下,就算升级本地认证机制,也不用修改程序。

PAM使用配置/etc/pam.d/下的文件,来管理对程序的认证方式.应用程序 调用相应的配置文件,从而调用本地的认证模块.模块放置在/lib/security下,以加载动态库的形式进,像我们使用su命令时,系统会提示你输入root用户的密码.这就是su命令通过调用PAM模块实现的。

ssh登陆时也会引用到改模块,配置文件为/etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

其中session部分会include包含password-auth配置,/etc/pam.d/password-auth-ac文件内容如下:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so
account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

其中pam_limits.so就是创建ssh连接时会调用的so模块,也就是使/etc/security/limits.conf文件生效的核心so。

参考文档

  • https://www.cnblogs.com/kevingrace/p/8671964.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSH远程Ulimit不生效 的相关文章

随机推荐

  • KEIL中SW Device没有识别芯片,jlink下载不进去的问题

    参考了以下链接之后 xff0c 未解决 避坑指南 GD32 KEIL中SW Device没有识别芯片 xff0c jlink下载不进去的问题 无风灬幡动的博客 CSDN博客 jlink识别不到芯片 https blog csdn net q
  • CAS单点登录(二)——搭建基础服务

    前一篇文章中 xff0c 我们对CAS及SSO xff08 单点登录 xff09 有了大致的了解 xff0c 今天我们开始讲解如何搭建一个简单的CAS服务认证中心 xff0c 如果你对CAS中单点登录的概念忘记了 xff0c 可以先去复习一
  • 【20220810】STM32控制各类外设芯片的过程就是配置、读、写该外设寄存器的过程

    STM32等 MCU控制各类外设芯片的过程 xff1a 就是配置 读 写该外设寄存器的过程 因此MCU开发最主要关注的是 xff1a 1 外设芯片的各个功能寄存器的用途 2 寄存器数据的逻辑含义 3 MCU与该外设芯片的通信引脚
  • 【20220816】接触新的通讯协议编程时,只需关注通讯协议初始化和数据接收缓存和发送缓存

    接触新的通讯协议编程时 xff0c 只需关注通讯协议初始化和数据接收缓存和发送缓存 因为通讯协议的实现通常是由硬件或软件实现 xff0c 比如以太网的PHY层芯片 43 MCU的ETH接口 xff0c PHY层芯片 43 MCU的ETH内部
  • Keil5修改与“选中文本“相同变量的背景色

  • C语言的运算符优先级表格

    C语言的运算符包括单目运算符 双目运算符 三目运算符 xff0c 优先级如下 xff1a 第1优先级 xff1a 各种括号 xff0c 如 等 成员运算符 xff1b 第2优先级 xff1a 所有单目运算符 xff0c 如 43 43 等
  • 关于单片机运行时程序卡在B.处的解决方法

    程序运行时 xff0c 程序跳转到startup n32g45x s文件中的B 处卡死 解决方法 xff1a 程序卡死在B 处说明有中断没有处理 xff0c 导致程序进入中断后无法跳出
  • node执行npm -install -g npm版本提示升级成功但执行npm -v还是原来的版本解决方法

    C Users 用户名 AppData Roaming npm node modules npm 的npm复制到node js安装目录下的node modules npm给替换掉 前提是执行npm install g npm成功 执行成功会
  • JAVA工具篇--3 maven项目转gradle项目

    前言 xff1a 将已有的Maven 项目转换为Gradle 项目 xff1b 1 项目转换 xff1a 1 1 win 43 r 打开cmd命令窗口 然后进入到maven项目根目录后 xff0c 输入命令 gradle init span
  • 解决高度塌陷的几种方法

    引入 进行页面布局时 xff0c 为了能够达到自适应 xff0c 通常高度是不会进行固定设置的 xff0c 而使用float进行元素的浮动后 xff0c 由于没有内容的高度 xff0c 所以会发生父元素的高度塌陷问题 xff0c 为了解决此
  • Docker镜像、容器操作

    文章目录 一 Docker镜像操作1 搜索镜像2 获取镜像3 查看镜像查看下载到本地的所有镜像查看下载的镜像文件信息查看镜像详细信息 4 为本地的镜像添加新的标签5 镜像导出导入到本地导出镜像 xff0c 将镜像保存为本地文件导入镜像 xf
  • Python 爬虫库以及库函数总结&&踩坑

    1 Re库的基本使用 Re库介绍 xff1a Re库是Python的标准库 xff0c 主要用于字符串匹配 调用方式 xff1a import re 正则表达式的表示类型 xff1a raw string类型 xff08 原生字符串类型 x
  • mysql创建超级用户

    在安装MySql后只有一个超级管理权限的用户ROOT xff0c 而且ROOT限制只能在数据库本机上使用 xff0c 如果我们要远程管理MySql咋办呢 xff1f 那么事实上我们需要添加一个具有超级管理权限并且可能远程访问的超级用户 xf
  • 论文笔记:Diffusion-Convolutional Neural Networks (传播-卷积神经网络)

    Diffusion Convolutional Neural Networks xff08 传播 卷积神经网络 xff09 2018 04 09 21 59 02 1 Abstract 我们提出传播 卷积神经网络 xff08 DCNNs x
  • JavaEE——CSS3选择器

    声明 xff1a 本栏目所使用的素材都是凯哥学堂VIP学员所写 xff0c 学员有权匿名 xff0c 对文章有最终解释权 xff1b 凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记 CSS3选择器 选择器中的属性 xff1a 之前介绍过
  • vscode 调试 webpack

    在vscode生成的launch json配置文件 span class token punctuation span span class token string 34 version 34 span span class token
  • CentOS8安装

    文章目录 下载镜像安装CentOS8总结参考文档 下载镜像 国内有很多镜像站都可以下载到阿里镜像站或者网易镜像站等 这里使用的是网易镜像站链接 xff1a http mirrors 163 com centos 安装CentOS8 注意 x
  • prometheus基于文件的服务发现

    prometheus基于文件的服务发现 prometheus配置文件如下 xff1a span class token key atrule global span span class token punctuation span spa
  • MySQL8.0自定义表空间

    文章目录 MySQL8 0自定义表空间语法创建表空间语法修改表空间语法 示例参考文档 MySQL8 0自定义表空间 从MySQL 8 0开始允许用户自定义表空间 xff0c 不同表的表空间可以设置使用不同磁盘 xff0c 可以做到冷热数据的
  • SSH远程Ulimit不生效

    SSH远程Ulimit不生效 问题描述 操作系统 etc security limits conf文件内容如下 xff1a soft memlock unlimited hard memlock unlimited 使用远程连接工具moba