如何在 Azure VM 上重置本地 Linux 密码

本文介绍重置本地 Linux 虚拟机和 VM (密码) 方法。 如果用户帐户已过期,或者你只想创建新帐户,可以使用以下方法创建新的本地管理员帐户并重新获取对 VM 的访问权限。

症状

你无法登录虚拟机,并且会收到一条消息,指示你使用的密码不正确。 此外,你无法使用 VMAgent 在 Azure 门户上重置密码。

手动密码重置过程

备注

以下步骤不适用于具有非托管磁盘的 VM。

  1. 为受影响的 VM 的操作系统磁盘拍摄快照,从快照创建磁盘,然后将磁盘附加到疑难解答 VM。 有关详细信息,请参阅使用 Azure 门户将操作系统磁盘附加到恢复 VM,对 Windows VM 进行疑难解答

  2. 使用远程桌面连接到疑难解答 VM。

  3. 在疑难解答 VM 上运行以下 SSH 命令,以成为超级用户。

    sudo su
    
  4. 运行 fdisk -l 或查看系统日志以查找新连接的磁盘。 找到要装载的驱动器名称。 然后,在临时 VM 上,查看相关的日志文件。

    grep SCSI /var/log/kern.log (ubuntu)
    grep SCSI /var/log/messages (centos, suse, oracle)
    

    下面是该grep 命令的示例输出:

    kernel: [ 9707.100572] sd 3:0:0:0: [sdc] Attached SCSI disk
    
  5. 创建一个称为 tempmount 的装入点

    mkdir /tempmount
    
  6. 在装入点上装载操作系统磁盘。 您通常需要装入 sdc1sdc2。 这将取决于损坏计算机磁盘的 /etc 目录中的托管分区。

    mount /dev/sdc1 /tempmount
    
  7. 在进行更改之前创建核心凭据文件的副本:

    cp /etc/passwd /etc/passwd_orig    
    cp /etc/shadow /etc/shadow_orig    
    cp /tempmount/etc/passwd /etc/passwd
    cp /tempmount/etc/shadow /etc/shadow 
    cp /tempmount/etc/passwd /tempmount/etc/passwd_orig
    cp /tempmount/etc/shadow /tempmount/etc/shadow_orig
    
  8. 重置所需的用户密码:

    passwd <<USER>> 
    
  9. 将修改后的文件移动到损坏计算机磁盘上的正确位置。

    cp /etc/passwd /tempmount/etc/passwd
    cp /etc/shadow /tempmount/etc/shadow
    cp /etc/passwd_orig /etc/passwd
    cp /etc/shadow_orig /etc/shadow
    
  10. 返回到根目录并卸载磁盘。

    cd /
    umount /tempmount
    
  11. 在 Azure 门户中,从疑难解答 VM 分离磁盘。

  12. 更改受影响的 VM 的操作系统磁盘

后续步骤