Linux服务器改密码用passwd命令;如果密码忘了,物理服务器或虚拟机可通过GRUB进入单用户模式或恢复模式重置root密码,云服务器则直接在控制台重置实例密码,无需重装系统。下面按“知道原密码怎么改”和“密码忘了怎么救”两条线展开,覆盖CentOS、Ubuntu、云服务器等常见场景。
Linux服务器修改密码命令:passwd与chpasswd怎么选
登录服务器后,改密码这件事本身并不复杂,真正容易踩坑的是权限、密码策略和远程连接方式,先分清你当前是普通用户还是root,再选对应命令。
修改当前用户密码
普通用户登录后,直接输入:
passwd
系统会提示输入当前密码,然后两次输入新密码,密码输入时不显示字符,这是正常现象,如果提示“passwd: Authentication token manipulation error”,通常是权限不足或文件系统只读,不是密码太简单。
root用户修改其他用户密码
root用户不需要知道原密码,可以直接重置任何用户:
passwd username
例如重置devuser:
passwd devuser
批量场景可以用chpasswd,从标准输入读取“用户名:新密码”:
echo "devuser:NewPass123" | chpasswd
注意,chpasswd不会校验密码复杂度,如果系统启用了PAM的pwquality模块,弱密码可能被拒绝,此时要么换强密码,要么临时调整策略,但生产环境不建议降低复杂度。
密码过期与强制修改
查看用户密码有效期:
chage -l username
强制用户下次登录修改密码:
passwd -e username
设置密码最长使用90天:
chage -M 90 username
| 场景 | 命令 | 是否需要原密码 | 风险 |
|---|---|---|---|
| 改自己密码 | passwd | 需要 | 低 |
| root改他人 | passwd username | 不需要 | 低 |
| 批量改密码 | chpasswd | 不需要 | 中,易写错 |
| 强制过期 | passwd -e username | 不需要 | 低 |
Linux忘记root密码怎么重置?物理机与云服务器两套路径
密码忘了先别重装,多数情况下,Linux保留了不少恢复入口,关键在于你用的是本地物理机、虚拟机,还是云服务器,三者的操作路径不同,但目标一致:拿到一个可写文件系统,替换shadow里的密码哈希。
本地服务器与云服务器重置密码的区别
本地物理服务器需要键盘和显示器,或者IDC带外管理,虚拟机可以通过宿主机控制台进入GRUB,云服务器最省事,直接登录云厂商控制台,找到实例,点“重置密码”,按提示重启即可,行业共识认为,云服务器控制台重置密码是成本最低的恢复方式,通常不收取额外费用。
云服务器Linux密码忘了怎么重置?控制台与命令行两种路径
以主流云平台为例,操作路径通常是:
- 登录云控制台。
- 进入“云服务器ECS”或“轻量应用服务器”。
- 找到目标实例,点击“更多”或“操作”。
- 选择“重置密码”或“修改密码”。
- 输入新密码,确认重启实例。
- 等待几分钟,用新密码SSH登录。
如果控制台重置失败,还可以通过VNC登录实例,部分云厂商提供“救援模式”或“恢复模式”,挂载系统盘后手动修改/etc/shadow,命令行路径适合有快照和基础运维能力的用户:
# 在救援系统中挂载原系统盘 mount /dev/vdb1 /mnt chroot /mnt passwd root exit reboot
注意设备名可能是/dev/vda1、/dev/nvme0n1p1等,先用lsblk确认。
CentOS 7忘记root密码进入单用户模式实操
CentOS 7及RHEL 7常用rd.break方式,步骤:
- 重启服务器,在GRUB菜单出现时按e编辑启动项。
- 找到以linux16或linuxefi开头的行,在行尾加
rd.break。 - 按Ctrl+X启动,进入紧急Shell。
- 重新挂载sysroot为可写:
mount -o remount,rw /sysroot chroot /sysroot
修改root密码:
passwd root
如果系统启用了SELinux,创建自动重打标签文件:
touch /.autorelabel
退出并重启:
exit exit reboot
重启过程可能较慢,因为SELinux要重新标记文件,完成后用新密码登录。
Ubuntu服务器密码忘了怎么办?GRUB恢复模式详解
Ubuntu和Debian系常用init=/bin/bash方式,步骤:
- 重启,在GRUB菜单按e。
- 找到以linux开头的行,在行尾加
rw init=/bin/bash。 - 按Ctrl+X启动,进入root Shell。
- 如果根分区只读,重新挂载:
mount -o remount,rw /
修改密码:
passwd root
如果改了普通用户:
passwd username
重启:
exec /sbin/init
或者直接reboot -f,Ubuntu新版本可能使用cloud-init,云服务器上更推荐控制台重置。
| 发行版 | 恢复方式 | 关键参数 | 备注 |
|---|---|---|---|
| CentOS 7 | rd.break | mount remount rw /sysroot | 需处理SELinux |
| RHEL 8/9 | rd.break | chroot /sysroot | 类似CentOS 7 |
| Ubuntu | init=/bin/bash | mount remount rw / | 注意只读根 |
| Debian | single | 单用户模式 | 可能需要root密码 |
修改密码后的安全加固与验证
密码改完不等于结束,远程服务器如果只改密码,不改密钥和登录策略,攻击面依然存在,业内专家指出,单纯重置密码而不检查密钥和登录日志,等于给攻击者留后门。
验证新密码是否生效
本地验证:
su - username
远程验证:
ssh username@服务器IP
如果SSH仍然拒绝,检查是否禁用了密码登录:
grep PasswordAuthentication /etc/ssh/sshd_config
若为no,则只能密钥登录,修改后重启SSH:
systemctl restart sshd
密码复杂度与PAM策略
查看PAM配置:
cat /etc/pam.d/system-auth cat /etc/pam.d/common-password
常见模块是pam_pwquality,可以设置最小长度、字符类型,修改前备份,避免锁死自己,测试时保留一个root会话,不要断开。
密钥登录与密码登录的取舍
生产服务器推荐密钥登录,关闭密码登录,但密码忘了时,密钥就是救命通道,建议:
- 保留至少一个可用的SSH密钥。
- 将公钥放在~/.ssh/authorized_keys。
- 设置PermitRootLogin prohibit-password。
- 定期轮换密钥,清理陌生公钥。
Q&A:Linux服务器密码修改与忘记密码常见问题
Linux服务器修改密码需要重启吗?
用passwd或chpasswd修改本地密码,不需要重启,云服务器控制台重置密码,通常需要重启实例才能生效,因为云平台要注入新的密码到系统盘,重启后由初始化脚本完成替换。
忘记密码后必须重装系统吗?
不需要,物理机和虚拟机可以通过GRUB单用户模式或rd.break重置,云服务器可以通过控制台重置,只有系统盘损坏、文件系统严重错误、或者云厂商不支持重置时,才考虑重装或挂载修复,重装前尽量挂载数据盘备份。
云服务器重置密码收费吗?为什么SSH还是连不上?
多数云厂商重置密码免费,但可能要求实例处于运行或停止状态,SSH连不上常见原因包括:安全组未放行22端口、SSH服务未启动、密码登录被禁用、用户名错了(如Ubuntu默认用户是ubuntu而非root),逐一检查后,用新密码登录即可。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/767506.html





