Linux ssh 无法登录的情况记录

这篇主要记录一些工作中碰到过的,有一些记录意思的案例

情况一:库文件被改动

问题描述

发现测试环境(Rhel6.4)账号无法登陆,密码正确时无响应,错误时提示错误,控制台进入后发现有如下报错

ERROR: ld.so: object '/lib/libcwait.so' from /etc/ld.so.preload cannot be preloaded: ignore

初步分析

1、因为测试了用户的正确密码和错误密码的对比,通过输出考虑是系统内部问题,另外因为禁用root远程登录,所以需要看控制台

2、在控制台发现有报错,测试用户登录也无法通过认证,尝试解决问题

3、发现是由于/etc/ld.so.preload 指向了一个不存在的库文件导致的,这个只能进入单用户模式挂载系统进行操作了

4、登录单用户模式,挂载文件系统,将/etc/ld.so.preload置空恢复系统正常使用

  1. 重启操作系统,在进入系统的界面按'e',进入编辑模式
  2. 第一个linux16行并在行尾添加内核参数 rd.break
  3. 按ctrl+x进入单用户模式
  4. 重新挂载系统目录 mount -o remount -o remount,rw /sysroot/
  5. 指定根目录,此后可以进行修改root密码等操作
switch_root:/# chroot /sysroot/
sh-4.2# 

5、恢复后登录系统,回溯系统的命令历史记录,发现有个脚本在近期动了这个文件,联系操作人员反馈这个操作的影响

Cloudwise-SmartAgent-Linux-1.4.0.0.sh
...
local perloadFileLocation="/etc/ld.so.preload"
...

总结

1、改动库文件很难判断会对哪些部分有影响,建议做好记录,方便回溯和问题的解决

2、大致定位了问题但不清楚具体的原因以及解决办法,还是得考虑搜索一下,描述清楚问题还是容易找到解决方案和解析的

参考

https://www.cnblogs.com/snigoal/archive/2012/07/17/2596569.html


情况二:系统参数调整

问题描述

SSH无法登录,控制台可以正常登录,SSH登录情况如下,连接上之后,直接断开:

Connection to xxx.xxx.xxx.xxx closed.

初步分析

1、控制台可以登录,ssh 远程登录能进入(因为已经提示了/etc/motd的内容)立即会退出,这个其实可以认为ssh配置应该是正常的,有其他问题

2、登录控制台操作,这会常见的有几种常见思路

一是看登录记录和历史记录,看是否有明显的变更

二是根据问题看日志排查,ssh 一般就是看 /var/log/messages 和 secure

三是依据自己的关于这个问题的思路排查一遍

3、因为考虑已经登录进入被退出了,所以考虑ssh配置和 /etc/security/access.conf 限制应该都是正常的

4、看看 sshd 服务状态(其实看messages应该更快),发现有报错,排查这个参数

systemctl status sshd
pam_limits(login:session): Could not set limit for ‘nofile’: Operation not permitted

5、排查 nofile 相关参数配置是否有变更或者是否正常

  1. 检查/etc/security/limits.conf 未发现明显异常
  2. nofile的值的上限是由/proc/sys/fs/nr_open限制的,默认是1048576,超过这个值就会导致连接ssh失败
  3. 检查/proc/sys/fs/nr_open,发现仅有65535,小于默认值,考虑应该是被修改过
  4. 查看/etc/sysctl.conf  ,考虑是这里修改过导致的异常,需要修改回来,并设置生效
more sysctl.conf |grep fs
fs.file-max = 65535
fs.nr_open = 65535

6、这些参数从默认值修改后,需要直接配置否则不会恢复默认值,除非重启

# 修改 /etc/sysctl.conf
fs.file-max = 26226683
fs.nr_open = 1048576
# 立即生效
sysctl -p

总结

1、这个可能从变更和日志排查会更快

2、这里描述一下这两个参数

/proc/sys/fs/file-max  设置内核最大的文件句柄数

/proc/sys/fs/nr_open  设置进程最大的文件句柄数 不能超过file-max

注意:配置的/etc/security/limits.conf 不能超过上述的两个参数,否则会有异常

参考

limits.conf超过限制导致ssh失败_limit.conf 过大 导致无法ssh-CSDN博客

linux查看进程limits解释,linux系统limit知识-CSDN博客


情况三: nologin 限制

问题描述

当创建了/etc/nologin 文件后,除root用户以外的,普通用户将无法登录,pam_nologin.so 限制普通用户登录时,会打印 /etc/nologin文件的内容,无法登录,会报错认证失败

处理办法

这个就看具体需求了,如果是误操作还是需要清理的,但是nologin的内容还是得写清楚一些

ssh 远程登录失败的情况非常多,建议先看看端口通不通,然后普通用户和root用户都尝试一下,另外就是控制台登录也需要尝试一下。如果能进入系统,就看看日志和操作记录回溯一下有没有异常操作。如果是新增用户,就对比一下用户和用户组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/659179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cesium 实战 - 加载 GeoJson 混合几何类型数据(同时包含 MultiPolygon 和 MultiLinestring),不能加载的问题

Cesium 实战 - 加载 GeoJson 混合几何类型数据(同时包含 MultiPolygon 和 MultiLinestring),不能加载的问题 复现问题完整代码:在线示例在之前的项目中,偶然遇到个气泡的问题:GeoJson 同时包含 MultiPolygon 和 MultiLinestring,并且数量比较大的时候,MultiLinestring …

Linux实验记录:远程控制服务

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: SSH(Secure Shell&…

安卓11修改HDMI自适应分辨率

客户需要hdmi自适应屏幕分辨率,没发现有相关的指令,我发现设置中有个hdmi的Auto选项,于是就试试选中这个选项,试下了可以自适应,于是就找到相关代码,在开机完成后执行这个代码,基本满足需求&…

数据中心IP代理是什么?有何优缺点?海外代理IP全解

海外代理IP中,数据中心代理IP是很热门的选择。这些代理服务器为用户分配不属于 ISP(互联网服务提供商)且来自第三方云服务提供商的 IP 地址,是分配给位于数据中心的服务器的 IP 地址,通常由托管和云公司拥有。 这些 I…

热仿真中稳态与瞬态的区别

对于热仿真,根据是否随时间变化,可分为稳态(steady)仿真和瞬态(transient)仿真两类。 从数学计算的角度,所谓稳态是指物理量不随时间变化的定常过程,即计算域中所有物理量均满足关系…

vue前端页面时间显示问题解决方法

解决方法&#xff0c; <template slot-scope"scope"><span>{{ parseTime(scope.row.boxClosingOnlineTime, {y}-{m}-{d} {h}:{i}:{s}) }}</span> </template> 刷新页面&#xff1a; 此外&#xff0c;使用JsonFormat(pattern "yyyy-M…

JavaEE UDP协议

JavaEE UDP协议 在之前的文章中有对UDP协议套接字的使用进行讲解&#xff0c;本文主要对UDP协议进行一些理论补充。 文章目录 JavaEE UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP&#xff0c;即User Datagram Proto…

【PyRestTest】高级使用

本节主要涉及PyRestTest的高级特征的详细使用,主要指:generators(生成器), variable binding(变量绑定), data extraction(数据提取), content validators(文本验证) 它们是如何组合在一起的? 模板和上下文 测试和基准测试可以使用变量来模板化动态配置。使用基础的…

【Java程序设计】【C00172】基于SSM的老年人健康管理系统(论文+PPT)

基于SSM的老年人健康管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的老年人健康管理系统 本系统分为前台、管理员以及用户3个功能模块。 前台&#xff1a;当游客打开系统的网址后&#xff0c;首先看到的就是首…

【前端-VUE+TS】Vue3组件化-知识补充(六)

一. 动态组件 比如我们现在想要实现了一个功能&#xff1a; 点击一个tab-bar&#xff0c;切换不同的组件显示&#xff1b; 案例截图 这个案例我们可以通过两种不同的实现思路来实现&#xff1a; 方式一&#xff1a;通过v-if来判断&#xff0c;显示不同的组件&#xff1b;方式二…

【开源学习】TB-gateway -- 基本配置与使用

【开源学习】TB-gateway -- 基本配置与使用 tb-gateway 安装部署centOS 7 安装&#xff08;不推荐&#xff09;Docker 安装&#xff08;推荐&#xff09; tb-gateway 通用配置文件连接配置模块 thingsboard存储配置模块 storage远程调用配置模块 grpc连接器配置模块 connectors…

C++核心

4.2对象的初始化 生活中我们买的电子产品都基本会有出厂设置&#xff0c;在某一天我们不用时候也会删除一些自己信息数据保证安全 C中的面向对象来源于生活&#xff0c;每个对象也会有初始设置以及 对象销毁前的清理数据的设置 4.2.1构造函数和析构函数 对象的初始化和清理…

数据恢复之道:DevicData-P-XXXXXXXX勒索病毒的预防与恢复攻略

尊敬的读者&#xff1a; 随着科技的发展&#xff0c;网络安全问题愈发突出&#xff0c;而勒索病毒作为其中的一种恶意软件&#xff0c;正不断演进成为威胁用户数据安全的严重问题。本文将深入介绍.DevicData-P-XXXXXXXX勒索病毒的特征&#xff0c;提供被感染文件的恢复方法&am…

os.environ函数用法

os.environ 是 Python 中 os 模块提供的一个字典&#xff0c;它表示当前系统的环境变量。环境变量是在操作系统级别设置的键值对&#xff0c;用于配置系统行为和提供信息给正在运行的进程。 os.environ 的基本用法包括获取和设置环境变量的值。下面是一些基本的使用示例&#…

jupyter python笔记杂乱

问题产生的原因: 无法执行sess.run()的原因是tensorflow版本不同导致的&#xff0c;tensorflow版本2.0无法兼容版本1.0 解决办法: tf.compat.v1.disable_eager_execution() 确保tf’2能运行tf1的代码 notebok打开指定文件夹 直接解决

落地PC ,AI的“iPhone时刻”要来了?

在AI技术浪潮持续翻涌的背景下&#xff0c;近段时间&#xff0c;不断有声音强调“2024年将是AIPC元年”。 为了奔赴这一可以预见的未来&#xff0c;产业链上下游的企业也“干劲十足”。品牌商方面&#xff0c;2024年的国际消费电子展&#xff08;CES&#xff09;上&#xff0c…

【ASP.NET Core 基础知识】--身份验证和授权--授权和策略

一、授权和策略的概念及应用 在ASP.NET Core中&#xff0c;授权和策略是重要的安全概念&#xff0c;用于确定用户是否有权限执行特定的操作或访问特定的资源。以下是关于ASP.NET Core中授权和策略的概念及其应用的一些重要信息&#xff1a; 1.1 授权&#xff08;Authorizatio…

Linux 文件IO

目录 linux下的文件分类&#xff1a; 文件描述符原理&#xff1a;&#xff08;底层原理&#xff0c;可跳过&#xff09; 虚拟文件系统&#xff1a; 内存中的inode与磁盘中的inode open函数 函数原型&#xff1a; 形参列表&#xff1a; 代码&#xff1a; close函数 er…

GBASE南大通用分享-Database 属性

GBASE南大通用分享 获得当前数据库的名字或在连接打开后使用的数据库名字。  语法 [Visual Basic] Public Overrides ReadOnly Property Database As String Get [C#] public override string Database { get; }  实现 IDbConnection.Database  注释 Database…

Vue_Router_守卫

路由守卫&#xff1a;路由进行权限控制。 分为&#xff1a;全局守卫&#xff0c;独享守卫&#xff0c;组件内守卫。 全局守卫 //创建并暴露 路由器 const routernew Vrouter({mode:"hash"//"hash路径出现#但是兼容性强&#xff0c;history没有#兼容性差"…