root 密码是 VPS 最核心的访问凭证,定期更换密码、使用强密码策略是保障服务器安全的基本措施。搬瓦工提供两种修改 root 密码的方式:通过 KiwiVM 面板直接修改(无需 SSH),以及通过 SSH 登录后使用 passwd 命令修改。本文详细讲解两种方式的操作步骤、强密码设置规范,以及忘记密码时的找回方法和改用 SSH 密钥的进阶安全配置。

本文要点

  • KiwiVM 面板修改 root 密码(无需 SSH)
  • SSH 登录后使用 passwd 命令修改
  • 强密码的组成规范与生成方法
  • 忘记 root 密码时的找回流程
  • 改用 SSH 密钥登录替代密码认证

方式一:通过 KiwiVM 面板修改

这是最推荐的修改方式,无需 SSH 可达,适用于忘记密码或无法登录时使用。

  1. 登录 KiwiVM,在左侧菜单找到 Root password modification(部分版本显示为 Root Shell 下方的密码入口)
  2. 点击 Generate and set new root password 按钮
  3. 系统会自动生成一个强随机密码并立即应用
  4. 页面显示新密码,立即复制保存(关闭页面后无法再次查看)
  5. 使用新密码通过 SSH 登录验证

密码只显示一次

KiwiVM 生成的随机密码只在生成后页面上显示一次,关闭或刷新后无法再次查看。请立即复制到密码管理器中保存。

方式二:SSH 登录后使用 passwd 命令

如果当前已能通过 SSH 登录 VPS,使用 passwd 命令修改密码更直接,且可以自定义密码内容。

# 以 root 身份登录后执行
passwd root
# 系统提示:New password:
# 输入新密码(不显示字符,正常现象)
# 系统提示:Retype new password:
# 再次输入相同密码
# 显示 passwd: password updated successfully 表示成功

若以普通用户身份登录,需通过 sudo 切换:

# 以普通用户切换到 root 后修改
sudo -i
passwd root
# 或直接用 sudo 修改 root 密码
sudo passwd root

强密码的设置规范

VPS 的 root 密码需满足以下强度要求,防止暴力破解:

要素要求示例
长度至少 16 位16~32 位为佳
大写字母至少 1 个A~Z
小写字母至少 1 个a~z
数字至少 1 个0~9
特殊字符至少 1 个! @ # $ % ^ & *
禁止不含个人信息、常见单词禁止 password、123456 等
# 使用 openssl 生成随机强密码
openssl rand -base64 24
# 示例输出:aB7kP2mX9nQ4rL6wY1vT3eJ8

# 使用 /dev/urandom 生成 20 位含特殊字符密码
cat /dev/urandom | tr -dc "a-zA-Z0-9!@#$%" | head -c 20; echo

# 使用 pwgen 工具生成(需先安装)
apt install -y pwgen
pwgen -s -y 20 1

忘记 root 密码时的找回方法

如果完全忘记 root 密码且无法 SSH 登录,按以下流程找回:

  1. 登录 搬瓦工客户中心,进入 VPS 管理
  2. 点击进入 KiwiVM
  3. 在左侧菜单选择 Root password modification
  4. 点击 Generate and set new root password
  5. 记录新密码,SSH 登录时使用新密码
  6. 登录后立即将密码修改为自定义强密码

找回密码无需重装系统

通过 KiwiVM 重置密码不会清除任何数据,无需重装系统。这是处理忘记密码情况的正确方式,切勿直接重装系统导致数据丢失。

进阶安全:改用 SSH 密钥认证

密码认证存在被暴力破解的风险,推荐改用 SSH 公私钥认证,彻底消除密码猜测攻击向量。

生成 SSH 密钥对

# 在本地电脑(Mac/Linux)执行
ssh-keygen -t ed25519 -C "my-vps-key"
# 默认保存到 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)
# 设置密钥密码(passphrase)以增加安全层

将公钥上传到 VPS

# 方法一:使用 ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 28000 root@YOUR_VPS_IP

# 方法二:手动添加
cat ~/.ssh/id_ed25519.pub | ssh -p 28000 root@YOUR_VPS_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

禁用密码登录

# 在 VPS 上编辑 SSH 配置
vim /etc/ssh/sshd_config

# 确保以下行的值为 no
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin prohibit-password  # 允许密钥登录但禁止密码登录

# 重启 SSH 服务(重启前确认密钥登录可用!)
systemctl restart sshd

禁用密码前先验证密钥登录

在修改 sshd_config 前,务必先在新窗口测试密钥登录成功,再关闭密码登录。否则一旦配置错误,将无法登录,需要通过 KiwiVM Emergency Console 修复。

多用户管理最佳实践

在生产环境中,不建议所有人都使用 root 账户直接操作 VPS。更好的做法是为每个用户创建独立账户,通过 sudo 授权执行需要特权的命令。这样做的好处是:操作可追溯(日志中记录了哪个用户执行了什么命令),权限可精确控制(某些用户可能只需要重启 Nginx,而不需要完整的 root 权限),以及降低误操作风险(普通用户不小心删除系统文件的可能性更低)。

# 创建新用户并添加到 sudo 组
useradd -m -s /bin/bash username
passwd username
# Debian/Ubuntu
usermod -aG sudo username
# CentOS
usermod -aG wheel username

# 验证 sudo 权限
su - username
sudo whoami  # 应输出 root

密码策略自动化配置

对于需要管理多台服务器的用户,可以配置系统级的密码策略,强制所有账户遵守强密码要求:

# 安装密码质量检查工具(Debian/Ubuntu)
apt install -y libpam-pwquality

# 编辑密码策略配置
vim /etc/security/pwquality.conf

# 推荐配置:
# minlen = 16          # 最小长度16位
# minclass = 4         # 至少包含大写、小写、数字、特殊字符各1个
# maxrepeat = 3        # 同一字符最多连续3次
# gecoscheck = 1       # 禁止使用用户名作为密码

配置密码策略后,所有通过 passwd 命令修改密码的操作都会自动检查密码强度,不满足要求的密码会被拒绝并提示原因,有效防止弱密码的使用。

定期密码轮换策略

即使当前密码足够强,定期更换密码也是良好的安全习惯,尤其在以下情况下应立即更换:发生人员离职、怀疑密码可能泄露、VPS 曾被异常登录、使用了与其他服务相同的密码。通过在 /etc/login.defs 配置密码有效期,可以强制用户定期更换:

# 设置密码最长有效期为90天(按需调整)
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_WARN_AGE 7

小结

root 密码安全是 VPS 安全的第一道防线。KiwiVM 面板修改适合应急找回,passwd 命令适合日常变更,SSH 密钥认证则是最安全的长期方案。三种方式掌握后,VPS 登录安全将得到全面保障。

常见问题

KiwiVM 改密码需要关机吗?

不需要,KiwiVM 的密码重置功能在 VPS 运行状态下即可执行,密码立即生效,无需重启服务器。

通过面板重置密码后原来的数据会丢失吗?

不会,密码重置只修改系统登录凭证,不影响任何数据和服务,与重装系统是完全不同的操作。

SSH 密钥丢失了怎么办?

若本地私钥文件丢失,可通过 KiwiVM 使用 Emergency Console 或 Root Shell 进入系统,编辑 ~/.ssh/authorized_keys 删除旧公钥,再上传新密钥对。

能为不同 SSH 客户端设置不同密钥吗?

可以,在 ~/.ssh/authorized_keys 文件中每行添加一个公钥,系统会逐一验证。不同设备使用不同密钥,方便管理权限。