强度高且定期更换的密码是 VPS Linux Infrawire 的第一道防线。您可以在客户区找到 VPS 的 IP 和 root 密码,首次登录后应立即修改该密码。本指南涵盖修改密码、过期与策略、锁定账户,以及恢复丢失的 root 密码。
📋 前提条件
- 一台 Linux VPS(Ubuntu 24.04、Debian 12、AlmaLinux 9 或 Rocky Linux 9)
- 以 root 或具有
sudo权限的用户进行 SSH 访问 - 恢复时:可访问 VPS 的控制台(VNC)或救援模式
1. 修改 root 密码
以 root 登录后:
Bashpasswd
使用 sudo:
Bashsudo passwd root
输入两次新密码;输入时屏幕上不会显示任何内容。请使用至少 14 个字符,或者更好的做法是使用密码管理器生成的口令短语。
2. 修改其他用户的密码
Bashsudo passwd USER
普通用户只需运行 passwd 修改自己的密码,系统会先要求输入当前密码。若要强制用户在下次登录时设置新密码:
Bashsudo passwd -e USER
3. 用 chpasswd 在脚本中设置密码
chpasswd 从标准输入读取 用户:密码 形式的行,适合自动化:
Bashread -r -s -p "新密码:" PW; echo echo "USER:$PW" | sudo chpasswd unset PW
避免直接把密码写在命令里:它会残留在 ~/.bash_history 中,并且能在进程列表里看到。
4. 过期与密码策略
使用 chage 查看并设置密码老化规则:
Bashsudo chage -l USER # 显示当前策略 sudo chage -M 90 -W 7 USER # 最长 90 天,提前 7 天警告
若要强制密码复杂度,请安装质量检查模块:
Bash# Ubuntu / Debian sudo apt install -y libpam-pwquality # AlmaLinux / Rocky sudo dnf install -y libpwquality
然后编辑 /etc/security/pwquality.conf:
INIminlen = 12 minclass = 3 retry = 3
这些规则适用于普通用户。root 可以绕过,所以请自觉遵守。
5. 锁定与解锁账户
Bashsudo passwd -l USER # 锁定密码 sudo passwd -u USER # 解锁 sudo chage -E 0 USER # 立即让账户过期 sudo chage -E -1 USER # 移除过期日期
锁定密码并不会阻止 SSH 密钥登录。若要完全禁止登录,还需用 sudo usermod -s /usr/sbin/nologin USER 把 shell 设为 /usr/sbin/nologin。
6. 恢复忘记的 root 密码
打开 VPS 的 VNC 控制台(或启动救援模式)并重启。在 GRUB 菜单中按 e,找到以 linux 开头的行,在行尾添加:
Bashinit=/bin/bash
按 Ctrl+X 启动,然后执行:
Bashmount -o remount,rw / passwd root sync exec /sbin/init
在 AlmaLinux 和 Rocky 上,请改为添加 rd.break,然后执行 mount -o remount,rw /sysroot、chroot /sysroot、passwd root、touch /.autorelabel,并退出两次。在救援模式下,先挂载系统磁盘,执行 chroot /mnt,再执行 passwd root。
7. 验证
Bashsudo passwd -S USER sudo chage -l USER
P 表示密码可用,L 表示已锁定。在关闭第一个会话之前,先打开第二个 SSH 会话确认新密码有效。
🔧 故障排除
“Authentication token manipulation error”
文件系统是只读的,常见于恢复模式。执行 mount -o remount,rw / 后重试。
“BAD PASSWORD: The password fails the dictionary check”
策略拒绝了弱密码。请选择更长且包含多种字符类型的密码。
SSH 仍然拒绝新的 root 密码
检查 sudo grep -E 'PermitRootLogin|PasswordAuthentication' /etc/ssh/sshd_config 以及 /etc/ssh/sshd_config.d/ 中的文件。密码登录可能已被禁用,只允许密钥。
在 SELinux 系统上恢复后无法登录
在 AlmaLinux 或 Rocky 上,忘记执行 touch /.autorelabel 会导致登录失败。请重新恢复并创建该文件。
🔒 您的账户现在已受到强密码、合理过期策略以及您会使用的恢复方法的保护。