VPS推荐

5分钟重置VPS root密码(Linux和Windows)

Pinterest LinkedIn Tumblr

购买搬瓦工Vultr服务器后,偶尔需要登录却发现 root 密码错误。如果无法访问 root 账户,可以在单用户模式下重置密码。本文解释了如何连接到 Web 控制台,重启进入单用户模式,然后如何重置VPS root密码(Linux和Windows)。

重置VPS root密码

入门指南

在执行您的操作系统的步骤之前,请按照以下步骤连接到 Web 控制台以访问VPS服务器。

  1. 单击管理后台中的“服务器重启”图标。
  2. 打开 Web 控制台。您也可以从 Web 控制台内部重新启动服务器。
  3. 然后,请按照您的操作系统的步骤来恢复对服务器的访问权限。

AlmaLinux

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,按 E 键编辑第一个引导选项。
  3. 找到以 linux 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按 CTRL+X 或 F10 键进入单用户模式。
  6. 使用以下命令访问系统:chroot /sysroot
  7. 输入 passwd 并按照提示更改 root 密码。
  8. 运行 touch /.autorelabel 强制文件系统重标记。对于具有 SELinux 的系统,这是必需的。当您重新启动系统时,它将为 SElinux 重新标记文件系统。在此过程中,重启可能需要更长时间。
  9. 输入 exit
  10. 输入 logout
  11. 输入 reboot 以重新启动服务器。

Arch Linux

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,按 E 键编辑第一个引导选项。
  3. 找到以 linux /boot/ 开头的内核行。
  4. 在行末添加一个空格和文本 init=/bin/bash
  5. 按 CTRL+X 或 F10 键进入单用户模式。
  6. 系统将启动,您将看到 root 提示符。
  7. 如果您的提示符被控制台文本遮挡,请运行 clear
  8. 运行 mount -o remount,rw / 以挂载系统卷。
  9. 运行 passwd 并按照提示更改 root 密码。
  10. 重新启动服务器。 # exec /sbin/init

CentOS 6

  1. 系统启动时,GRUB 提示您按任意键停止引导过程。快速按下一个键;您只有几秒钟的时间。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 提示符下,键入 A 以附加到引导命令。
  3. 在行末添加一个空格和文本 single
  4. 按 ENTER 键。
  5. 系统将启动,您将看到 root 提示符。
  6. 输入 passwd 并按照提示更改 root 密码。
  7. 运行 reboot 以重新启动服务器。

CentOS 7

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,按 E 键编辑第一个引导选项。
  3. 找到以 linux16 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按 CTRL+X 或 F10 键进入单用户模式。
  6. 使用以下命令访问系统:chroot /sysroot
  7. 输入 passwd 并按照提示更改 root 密码。
  8. 运行 touch /.autorelabel 强制文件系统重标记。对于具有 SELinux 的系统,这是必需的。当您重新启动系统时,它将为 SElinux 重新标记文件系统。在此过程中,重启可能需要更长时间。
  9. 输入 exit
  10. 输入 reboot -f 以重新启动服务器。

CentOS 8 和 CentOS 8 Stream

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,按 E 键编辑第一个引导选项。
  3. 找到以 linux 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按 CTRL+X 或 F10 键进入单用户模式。
  6. 使用以下命令访问系统:chroot /sysroot
  7. 输入 passwd 并按照提示更改 root 密码。
  8. 运行 touch /.autorelabel 强制文件系统重标记。对于具有 SELinux 的系统,这是必需的。当您重新启动系统时,它将为 SElinux 重新标记文件系统。在此过程中,重启可能需要更长时间。
  9. 输入 exit
  10. 输入 logout
  11. 输入 reboot 以重新启动服务器。

CentOS 9 Stream

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,使用箭头键突出显示一个救援内核,然后按 E 键编辑引导选项。
  3. 找到以 linux 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按 CTRL+X 或 F10 键进入单用户模式。
  6. 按 ENTER 键进入维护模式。
  7. 使用以下命令访问系统:chroot /sysroot
  8. 输入 passwd 并按照提示更改 root 密码。
  9. 运行 touch /.autorelabel 强制文件系统重标记。对于具有 SELinux 的系统,这是必需的。当您重新启动系统时,它将为 SElinux 重新标记文件系统。在此过程中,重启可能需要更长时间。
  10. 输入 exit
  11. 输入 reboot 以重新启动服务器。

CoreOS

Vultr 使用 root 用户名和密码创建 CoreOS 实例。core 用户具有 sudo 访问权限,并且如果在创建实例时选择了密钥,则可以使用 SSH 密钥登录。如果您可以使用 SSH 密钥登录为 core,则可以通过作为 core 执行 sudo passwd 来重置 root 登录。如果您丢失了 SSH 密钥,则可以通过编辑 GRUB 加载程序来作为 core 登录。

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,按 E 键编辑第一个引导选项。
  3. 找到以 linux$ 开头的内核行。
  4. 在行末添加一个空格和文本 coreos.autologin=tty1
  5. 按 CTRL+X 或 F10 键启动。
  6. 系统启动时,您将以 core 身份登录。
  7. 运行 sudo passwd 并按照提示更改 root 密码。
  8. 重新启动服务器。

Debian

  1. 系统启动时,按 ESC 键显示 GRUB 引导提示符。提示符在引导过程的早期显示。如果您错过了提示符,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符下,按 E 键编辑第一个引导选项。
  3. 找到以 linux /boot/ 开头的内核行。
  4. 在行末添加一个空格和文本 init=/bin/bash
  5. 按 CTRL+X 或 F10 键进入单用户模式。
  6. 系统将启动,您将看到 root 提示符。
  7. 如果您的提示符被控制台文本遮挡,请运行 clear
  8. 运行 mount -o remount,rw / 以挂载系统卷。
  9. 运行 passwd 并按照提示更改 root 密码。
  10. 重新启动服务器。 # exec /sbin/init

Fedora 29 到 33

  1. 当系统启动时,按下 ESC 键以打开 GRUB 引导提示符。该提示符在启动过程中很早就出现了。如果你错过了提示符,你需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符处,按 E 键编辑第一个引导选项。
  3. 找到以 linux 开头的内核行
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按下 CTRL+X 或 F10 进入单用户模式。
  6. 使用命令 chroot /sysroot 访问系统。
  7. 系统将启动,您将看到 root 提示符。
  8. 运行 passwd 修改 root 密码。
  9. 运行 touch /.autorelabel 强制文件系统重新标记。
  10. 运行 exit
  11. 运行 logout
  12. 运行 reboot 重新启动服务器。

Fedora 34 和 35

  1. 当系统启动时,按下 ESC 键以打开 GRUB 引导提示符。该提示符在启动过程中很早就出现了。如果你错过了提示符,你需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符处,使用箭头键突出显示一个 rescue 内核,然后按 E 键编辑引导选项。
  3. 找到以 linux 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按下 CTRL+X 或 F10 进入单用户模式。
  6. 按 ENTER 进入维护模式。
  7. 使用命令 chroot /sysroot 访问系统。
  8. 输入 passwd 并按照提示更改 root 密码。
  9. 运行 touch /.autorelabel 强制文件系统重新标记。对于带有 SELinux 的系统,这是必需的。当您重新启动系统时,它将重新标记 SElinux 的文件系统。此过程可能需要额外的时间。
  10. 运行 exit
  11. 运行 reboot 重新启动服务器。

Fedora CoreOS

  1. 当系统启动时,按 E 键编辑 GRUB 引导选项。这发生得很快,您有大约一秒钟的时间来拦截引导过程。如果你错过了提示符,重新启动服务器,然后重试。
  2. 找到以 linux 开头的内核行。
  3. 删除控制台选项,该选项为 console=ttyts0,115200n8
  4. 在内核行的末尾添加 single
  5. 按 CTRL+X 启动。

系统将启动到救援模式。按 ENTER 进入单用户 (维护) 模式。

更改 Core 用户密码

  1. 作为 root,使用 passwd 实用程序更改 core 用户密码。 # passwd core 为用户 core 更改密码。 新密码: 重新输入新密码: passwd:所有身份验证令牌均已成功更新。
  2. 重新启动系统: # /sbin/reboot -f

更改 Core 用户 SSH 密钥

  1. 使用 Web 控制台作为具有新密码的 core 登录。
  2. 将新公钥添加到 ~/.ssh/authorized_keys.d/。为密钥选择一个逻辑文件名。 注意:Web 控制台不支持复制和粘贴。最简单的方法是将密钥上传到公共网站,然后使用 curl。完成后从网站中删除密钥。 $ curl <https://example.com/id_rsa.pub> >> ~/.ssh/authorized_keys.d/new_public_key
  3. 设置新公钥的权限。 $ chmod 600 ~/.ssh/authorized_keys.d/new_public_key
  4. 建议: 锁定 core 用户密码。 $ sudo passwd -l core passwd:成功
  5. 退出 Web 控制台。
  6. 使用您的新密钥作为 core 通过 SSH 登录。

FreeBSD

  1. 在启动菜单中,按 2 进入单用户模式。该提示符在启动过程中很早就出现了。如果你错过了提示符,你需要从控制面板重新启动服务器并重试。
  2. 在根提示符处,键入 mount -u -a -o rw 以重新安装磁盘 RW。
  3. 键入 passwd 以更改 root 密码。
  4. 重新启动服务器。

OpenBSD

打开网页控制台的“发送 CtrlAltDel”按钮不适用于 OpenBSD。在启动继续之前,您必须迅速执行步骤1和2。

  1. Vultr 客户门户 中单击 服务器重启 图标。
  2. 打开网页控制台。 有关更多信息,请参见 Web 控制台 FAQ
  3. 第二阶段引导加载程序会暂停几秒钟,以便您有机会向内核提供参数。

-s 标志传递给 boot:

    >> OpenBSD/amd64 BOOT 3.47

    boot> boot -s

如果您错过了提示,则需要从控制面板重新启动服务器并重试。
  1. 输入您的 shell 的路径名或按 ENTER 键以使用 sh。
  2. 以读写方式挂载根文件系统。 # fsck -p / && mount -uw /
  3. 更改 root 密码。 # passwd
  4. 输入 CTRLD 以在多用户模式下重新启动服务器。

Rocky Linux

  1. 在系统启动时,按 ESC 键打开 GRUB 引导提示符。提示符出现在启动过程的早期阶段。如果您错过了提示,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符处,按 E 编辑第一个启动选项。
  3. 查找以 linux 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按 CTRL+X 或 F10 进入单用户模式。
  6. 使用命令 chroot /sysroot 访问系统。
  7. 输入 passwd 并按提示更改 root 密码。
  8. 运行 touch /.autorelabel 强制文件系统重新标记。对于具有 SELinux 的系统,这是必需的。当您重新启动系统时,它将为 SElinux 重新标记文件系统。此过程可能需要额外的时间来重新启动。
  9. 运行 exit
  10. 运行 logout
  11. 运行 reboot 以重新启动服务器。

Ubuntu

  1. 在系统启动时,按 ESC 键打开 GRUB 引导提示符。提示符出现在启动过程的早期阶段。如果您错过了提示,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符处,按 E 编辑第一个启动选项。
  3. 查找以 linux /boot/ 开头的内核行。
  4. 在行末添加一个空格和文本 init=/bin/bash
  5. 按 CTRL+X 或 F10 进入单用户模式。
  6. 系统会启动,您将看到 root 提示符。
  7. 运行 mount -o remount,rw / 将系统卷挂载。
  8. 输入 passwd 并按提示更改 root 密码。
  9. 重新启动服务器。 # exec /sbin/init

VzLinux

  1. 在系统启动时,按 ESC 键打开 GRUB 引导提示符。提示符出现在启动过程的早期阶段。如果您错过了提示,则需要从控制面板重新启动服务器并重试。
  2. 在 GRUB 引导提示符处,按 E 编辑第一个启动选项。
  3. 查找以 linux 开头的内核行。
  4. ro 更改为 rw init=/sysroot/bin/sh
  5. 按 CTRL+X 或 F10 进入单用户模式。
  6. 使用命令 chroot /sysroot 访问系统。
  7. 输入 passwd 并按提示更改 root 密码。
  8. 运行 touch /.autorelabel 强制文件系统重新标记。对于具有 SELinux 的系统,这是必需的。当您重新启动系统时,它将为 SElinux 重新标记文件系统。此过程可能需要额外的时间来重新启动。
  9. 运行 exit
  10. 运行 logout
  11. 运行 reboot 以重新启动服务器。
重置VPS root密码

Windows Server

如果 Windows 管理员帐户密码已锁定或遗忘,则需要使用可引导的救援 ISO。本教程是解锁 Windows Server 管理员的逐步指南,使用 SystemRescue x64,这是一个用于许多维护和救援任务的自包含 Linux ISO。

执行干净的关闭

如果可能,执行干净的 Windows 关闭。当我们安装救援 ISO 后,您将通过客户门户重新启动服务器。如果 Windows 尚未关闭电源,则在 SystemRescue 中稍后可能无法挂载磁盘。

进行备份

在尝试进行任何救援之前,请备份您的 VPS。Vultr 为 VPS 实例提供手动快照和自动备份。如果您没有启用自动备份,请制作手动快照。在没有备份的情况下尝试救援服务器是鲁莽的。没有什么可以替代一个健全的备份策略。您可以在客户门户中通过几个单击创建服务器快照。

您有责任备份所有关键任务数据,并遵循本地法律和组织政策。Vultr 不会在您的客户门户外维护其他备份。

挂载 SystemRescue

在客户门户中导航到服务器信息页面。选择 设置 > 自定义 ISO。选择 SystemRescue ISO,然后单击 附加 ISO 并重启

服务器将从 ISO 重新启动。连接到服务器 使用网页控制台 执行救援步骤。当服务器重新启动时,您可能需要一些时间才能查看实例控制台。

选择“使用默认选项引导 SystemRescue”并按 ENTER 键。等待 ISO 启动到 root 提示符。

挂载 Windows 设备

  1. 使用 fdisk 查找正确的 Windows 设备。查找主 Windows 系统设备。通常,这将是 NTFS 类型设备,大小与 VPS 磁盘类似。对于本教程,请使用 /dev/vda2,即 79.5 GB 的 NTFS 设备。 # fdisk -l Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 1126399 1124352 549M 7 HPFS/NTFS/exFAT /dev/vda2 1126400 167770111 166643712 79.5G 7 HPFS/NTFS/exFAT
  2. 创建一个挂载点文件夹。 # mkdir /mnt/win
  3. 尝试挂载 Windows 系统磁盘。 # mount /dev/vda2 /mnt/win 如果挂载成功,则跳过下一节。如果在步骤一中没有干净关闭系统,则挂载可能会遇到错误。 The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Falling back to read-only mount because the NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting.)
  4. 如果挂载遇到错误(如上所示),则 Windows 设备将以只读方式挂载。在我们可以更正错误之前,卸载驱动器。 # umount /dev/vda2
  5. 在卸载驱动器之后,运行 ntfsfix 解决脏关闭错误。将 /dev/vda2 替换为您的分区。 # ntfsfix /dev/vda2 ... NTFS partition /dev/vda2 was processed successfully.
  6. ntfsfix 完成后,尝试挂载设备。 # mount /dev/vda2 /mnt/win

解锁帐户

  1. 导航到 SystemRescue 中现在已经挂载在 /mnt/win 下的 C:\Windows\System32\config 文件夹。 # cd /mnt/win/Windows/System32/config/
  2. 在交互模式下启动 chntpw,使用默认的安全帐户管理 (SAM) 数据库。 # chntpw -i SAM 1 - Edit user data and passwords
  3. 输入要重置密码的用户名。在本教程中,我们将重置 Administrator 帐户的密码。 # chntpw -u Administrator SAM
  4. 按照提示输入新密码。如果您希望禁用该帐户,则可以选择在提示后输入 !,然后按 ENTER 键。
  5. 输入 q 退出 chntpw。
  6. 卸载 Windows 设备。 # umount /mnt/win

删除 ISO 文件并重启

  1. 在客户门户中导航到服务器信息页面。
  2. 单击 删除 ISO 图标。
  3. 在下拉菜单中选择 SystemRescue ISO。
  4. 单击 删除
  5. 单击 重新启动服务器。在此时,您可以关闭客户门户。

然后删除 SystemRescue.iso 文件

# rm /root/SystemRescue.iso

重启服务器

您现在可以使用新密码从 Windows Server 登录。请确保您已删除 SystemRescue.iso 文件,然后重新启动服务器。

登录并设置新密码

您必须通过 网页控制台 登录到服务器以设置新密码。Remote Desktop Protocol (RDP) 不允许使用空密码登录。

  1. 使用您的用户名登录,将密码字段留空。SystemRescue 的密码重置过程完全删除了密码。
  2. 单击位于网页控制台右上角的 发送 CtrlAltDel 按钮。
  3. 为 Windows 用户帐户输入一个新的强密码。