Linux passwd 密码管理与免密登录全方位实战
前言
密码管理是服务器安全的核心,包含用户密码修改、密码锁定/清空、账号禁用,以及工作高频使用的SSH免密登录、sudo免密执行。本文详解 passwd 所有核心用法,搭配生产安全规范,零基础快速掌握。
一、passwd 密码管理核心命令
1. 基础作用
修改用户密码、锁定/解锁密码、清空密码、设置密码有效期,所有密码操作均加密写入 /etc/shadow 文件。
2. 基础语法
passwd [参数] 用户名
3. 高频核心参数
无参数:修改当前登录用户密码
-l:锁定用户密码,禁止修改密码、禁止登录-u:解锁用户密码,恢复正常使用-d:清空用户密码,实现无密码登录(仅限测试环境)-e:强制用户下次登录必须修改密码
二、基础密码实操(生产常用)
# 1. 修改当前用户密码 passwd # 2. root修改普通用户密码(无需旧密码,权限最高) passwd zhangsan # 3. 锁定用户密码(员工离职禁用账号) passwd -l zhangsan # 4. 解锁用户密码 passwd -u zhangsan # 5. 清空用户密码(测试环境慎用,生产禁止) passwd -d zhangsan # 6. 强制用户下次登录改密 passwd -e zhangsan三、SSH 免密登录配置(工作必备)
1. 免密原理
本机生成公私钥密钥对,私钥留存本机,公钥上传至目标服务器授权文件,本机私钥与目标公钥匹配成功,即可无需密码直接登录。
2. 一键实操步骤(所有Linux通用)
# 第一步:本机生成密钥对(一路回车,默认配置即可) ssh-keygen # 第二步:推送公钥到目标服务器(实现免密授权) ssh-copy-id 用户名@目标IP # 第三步:直接免密登录,无需输入密码 ssh 用户名@目标IP3. 免密失效排查
密钥文件权限过宽:需保证 .ssh 目录700权限,私钥600权限
目标服务器防火墙、SSH服务异常
公钥未正确写入 authorized_keys 文件
四、Sudo 免密执行权限(高频运维场景)
普通用户默认无管理员权限,每次执行高权限命令需输密码,可配置 sudo 免密,无需输密码直接执行root权限命令。
1. 编辑sudo配置文件
必须使用visudo编辑(自带语法校验,防止配置报错导致系统瘫痪)
visudo2. 添加免密配置
# 格式:用户名 ALL=(ALL) NOPASSWD:ALL zhangsan ALL=(ALL) NOPASSWD:ALL3. 效果验证
# 无需输入密码,直接执行管理员命令 sudo ls /root五、生产安全规范(必看)
1. 生产环境禁止使用空密码,禁止 passwd -d 操作;
2. 离职员工账号优先passwd -l锁定,保留数据,不直接删除;
3. SSH免密仅内网服务器使用,外网服务器禁止开启免密;
4. sudo免密仅授予信任运维账号,禁止普通开发账号拥有全量免密权限。
六、核心总结
1. 改密码:passwd 用户名,root可强制修改所有用户密码;
2. 账号管控:-l锁定、-u解锁、-d清空密码;
3. 跨机免密:ssh-keygen + ssh-copy-id一键配置;
4. 本地免密:visudo配置sudo无密码执行。
