如何在 Azure VM 上重設本機 Linux 密碼
本文提供三種方法來重設本機Linux虛擬機 (VM) 密碼。 如果使用者帳戶已過期或您想要建立新帳戶,您可以使用下列方法來建立新的本機系統管理員帳戶,並重新取得 VM 的存取權。
使用 Azure Linux 代理程式重設密碼
您可以重設密碼,而不需將OS磁碟連結至另一個 VM。 此方法需要在受影響的 VM 上安裝 Azure Linux 代理 程式。
請確定 Azure Linux 代理程式 (waagent) 服務正在受影響的 VM 上執行,且在 Azure 入口網站 中處於就緒狀態。
設定環境變數,並使用 Azure CLI 或 Azure Cloud Shell 來進行密碼重設:
AZ_RESOURCE_GROUP="YourResourceGroupName" AZ_VM_NAME="VMname" AZ_ADMIN_USER="adminName" AZ_MSADMIN_PASS="newPassword" az vm user update -u $AZ_ADMIN_USER -p $AZ_MSADMIN_PASS -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME
嘗試存取 VM。
若要更新 SSH 金鑰,請 參閱使用 VMAccess 擴充功能搭配 Azure CLI 管理系統管理使用者 SSH。
您也可以使用 Azure 入口網站 中的 [重設密碼] 功能來重設密碼或 SSH 金鑰。
如需詳細資訊,請參閱 適用於Linux的 vmaccess 擴充功能。
使用序列主控台搭配單一使用者模式重設密碼
您可以使用 序列主控台 ,透過單一使用者模式重設 admin user
或 root
帳戶,以進行 VM 存取。
遵循 單一使用者模式 程式來重設或新增密碼。
如果您嘗試使用 SSH 和密碼驗證登入伺服器,請確定已在 OpenSSH 伺服器上啟用密碼驗證。
執行下列命令,
PasswordAuthentitcation
檢查值是否設定為yes
或no
/etc/ssh/sshd_config
在 中:egrep "^PasswordAuthentication" /etc/ssh/sshd_config
如果值
PasswordAuthentication
設定為no
,請使用文字編輯器,例如vi
或nano
,將值變更為yes
。
執行 命令,
admin user
為或root
帳戶passwd
建立新的密碼:passwd <admin_user>
執行下列命令,檢查 是否
SElinux
處於enforcing
中的模式/etc/sysconfig/selinux
:cat /etc/sysconfig/selinux
如果
SElinux
處於enforcing
模式,請確定SElinux
允許使用 命令進行passwd
檔案變更。 密碼變更之後,您可以執行下列命令來重新標記檔案系統,以加速載入變更。touch /.autorelabel
執行下列命令來重新啟動 VM:
/usr/sbin/reboot -f
嘗試存取 VM。
使用修復 VM 重設密碼
此方法已使用 支援的Linux發行版和版本進行測試。
注意事項
如果您遇到影響 Azure 網路虛擬設備的問題,此方法不適用於您的情況。 相反地,您必須連絡網路虛擬設備的廠商,以取得如何安全地重設密碼的指示。
您可以執行 vm repair 命令來建立已鏈接受影響 VM OS 磁碟復本的修復 VM。 然後,透過 Chroot 環境在修復 VM 上掛接 OS 檔案系統的複本。
注意事項
或者,使用 Azure 入口網站 手動建立救援 VM。 如需詳細資訊,請參閱使用 Azure 入口網站 將 OS 磁碟連結至復原 VM,以針對 Linux VM 進行疑難解答。
執行下列 az vm repair create 命令來建立 OS 磁碟的複本。 然後,磁碟會自動連結至復原 VM。
AZ_RESOURCE_GROUP="YourResourceGroupName" AZ_VM_NAME="VMname" AZ_ADMIN_USER="userName" AZ_MSADMIN_PASS="newPassword" az vm repair create -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --repair-username $AZ_ADMIN_USER --repair-password "$AZ_MSADMIN_PASS" --verbose
登入修復 VM 並 針對 Chroot 環境進行疑難解答。
如果您嘗試使用 SSH 和密碼驗證登入伺服器,請確定已在 OpenSSH 伺服器上啟用密碼驗證。
執行下列命令,
PasswordAuthentitcation
檢查值是否設定為yes
或no
/etc/ssh/sshd_config
在 中:egrep "^PasswordAuthentication" /etc/ssh/sshd_config
如果值
PasswordAuthentication
設定為no
,請使用文字編輯器,例如vi
或nano
,將值變更為yes
。
執行 命令,
admin user
為或root
帳戶passwd
建立新的密碼:passwd <admin_user>
執行下列命令,檢查 是否
SElinux
處於enforcing
中的模式/etc/sysconfig/selinux
:cat /etc/sysconfig/selinux
如果
SElinux
處於enforcing
模式,請確定SElinux
允許使用 命令進行passwd
檔案變更。 密碼變更之後,您可以執行下列命令來重新標記檔案系統,以加速載入變更。touch /.autorelabel
結束 Chroot 環境。
使用下列命令交換 OS 磁碟,將 OS 磁碟重新掛接至受影響的 VM:
az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
嘗試存取 VM。
後續步驟
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應