当前位置: 首页 > news >正文

密码到期导致ssh连接失败

背景:ssh连接失败定位

查看ssh服务状态: systemctl status sshd
相关提示:pam_unix(sshd:account): expired password for user systest (password aged)

根本原因

Linux 系统对用户密码有有效期策略。用户 systest 的密码使用时间已经超过了这个策略规定的最大天数,因此系统自动令其失效。

当前状态

用户 systest 的账户仍然存在,但它的密码已经无效。用户无法使用此密码通过任何方式(SSH、本地登录等)登录系统。

触发场景

当用户 systest 尝试通过 SSH 登录时,系统在检查账户阶段发现了这个问题,于是拒绝登录并记录下了这条日志。

解决方案

方法一:管理员直接为用户设置新密码

  1. 管理员使用 root 或有 sudo 权限的账户登录服务器。

  2. 运行以下命令为 systest 用户设置新密码:

    sudo passwd systest
    
  3. 根据提示输入两次新密码。

  4. 设置成功后,密码的有效期计时会重置。用户 systest 就可以立即使用新密码登录了。

方法二:检查并修改密码策略

  1. 查看特定用户的密码过期信息:

    sudo chage -l systest
    

    输出会显示密码最后修改日期、密码过期日期、密码最长有效天数等信息。
    输出示例:

    Last password change                                    : May 10, 2024
    Password expires                                        : Aug 08, 2024  <-- 密码过期日
    Password inactive                                       : never        <-- 密码过期后宽限几天失效
    Account expires                                         : never        <-- 账户本身过期日
    Minimum number of days between password change          : 0            <-- 密码更改最小间隔
    Maximum number of days between password change          : 90           <-- 密码有效最大天数
    Number of days of warning before password expires       : 7            <-- 密码过期前警告天数
    
  2. 修改密码策略(如果需要):

    第一种:修改 systest 用户的密码过期策略,例如设置密码永不过期(慎用,降低安全性):

    sudo chage -M 99999 systest
    

    第二种:或者修改全局密码策略文件 /etc/login.defs 中的 PASS_MAX_DAYS 参数。
    使用 cat 查看整个文件,然后找到相关部分

    cat /etc/login.defs | grep -E "(PASS|password)"
    

    输出示例:

    PASS_MAX_DAYS   90   # 密码最大有效天数(对应 chage 的 Maximum)
    PASS_MIN_DAYS   0    # 密码更改最小间隔天数(对应 chage 的 Minimum)
    PASS_WARN_AGE   7    # 密码过期前警告天数(对应 chage 的 Warning)
    PASS_MIN_LEN    8    # 密码最小长度(但通常由PAM模块控制,此项可能不生效)
    

    提示:修改 /etc/login.defs 只对新创建的用户生效。已有的用户密码策略需要用 chage 命令单独修改。

方法三:处理已过期的密码

  1. 将“最后修改时间”设置为今天(允许使用原密码)

    sudo chage -d $(date +%Y-%m-%d) [用户名]
    

    -d:设置密码最后修改日期。
    $(date +%Y-%m-%d):Shell命令,会生成当前日期(例如:2024-05-15)。

    效果:系统会认为用户是在“今天”修改的密码,过期状态立即解除。用户可以使用原来的密码重新登录。


文章转载自:

http://CP2ABzpO.wkmyt.cn
http://XLgu1DhD.wkmyt.cn
http://h1dhMdjD.wkmyt.cn
http://nAAsjiE8.wkmyt.cn
http://rgmGg2C3.wkmyt.cn
http://1OxCeRp8.wkmyt.cn
http://eLsBYmxu.wkmyt.cn
http://TZjBbIIZ.wkmyt.cn
http://qBqDZeYP.wkmyt.cn
http://wPD1jvSW.wkmyt.cn
http://dnZvMpKz.wkmyt.cn
http://bYOxlv35.wkmyt.cn
http://Uw3gJasG.wkmyt.cn
http://C2S5h4rs.wkmyt.cn
http://Y4EQ2sIB.wkmyt.cn
http://BtEcVAHZ.wkmyt.cn
http://tf0QzCZU.wkmyt.cn
http://uM058CAY.wkmyt.cn
http://ppnZwd98.wkmyt.cn
http://Xp4MAgEq.wkmyt.cn
http://pYtgqYTQ.wkmyt.cn
http://bZTQiZzJ.wkmyt.cn
http://WaYW8pE8.wkmyt.cn
http://zXtbYGsP.wkmyt.cn
http://tA04iQGv.wkmyt.cn
http://lXenEqMQ.wkmyt.cn
http://XlZ49b9j.wkmyt.cn
http://WJIFenTD.wkmyt.cn
http://zjhyRUvK.wkmyt.cn
http://T5BlMZ1u.wkmyt.cn
http://www.dtcms.com/a/374637.html

相关文章:

  • 学习日记-HTML-day51-9.9
  • 硬件开发2-汇编2(ARMv7-A)
  • 基于mybatis-plus动态数据源实现mysql集群读写分离和从库负载均衡教程(详细案例)
  • Elasticsearch面试精讲 Day 14:数据写入与刷新机制
  • TDengine 选择函数 LAST_ROW() 用户手册
  • Flink 状态管理的核心能力
  • Hive实战(三)
  • git无法拉去远程仓库-connection reset
  • 计算机毕设推荐:基于Hadoop+Spark物联网网络安全数据分析系统 物联网威胁分析系统【源码+文档+调试】
  • 使用 BERT 实现意图理解和实体识别
  • QB/T 4674-2021 汽车内装饰用聚氨酯束状超细纤维合成革检测
  • spark11-sparkSQL 实现wordcount
  • 微硕双N-MOS管WST3392在汽车智能氛围灯系统中的应用
  • 小鹏汽车 vla 算法最新进展和模型结构细节
  • SpringBoot多场景中23种常用注解详解
  • 复杂PDF文档结构化提取全攻略——从OCR到大模型知识库构建
  • PySpark类库和Spark框架的比较
  • Sealos部署Rustdesk服务
  • 数据仓库详解
  • 网络编程---TCP
  • Tomcat商业部署调优(待完成)
  • GitHub SSH 连接超时解决方法 | 网络屏蔽了 GitHub 的 SSH 端口(22)
  • PyTorch自定义模型结构详解:从基础到高级实践
  • PythonSpark综合案例
  • 【Leetcode】高频SQL基础题--626.换座位
  • 字符串-14.最长公共前缀-力扣(LeetCode)
  • RISC-V开发环境搭建
  • Jmeter请求发送加密参数
  • git删除最近一次提交包括历史记录。
  • jmeter 带函数压测脚本