次の方法で共有


Azure VM 上でローカルの Linux パスワードをリセットする方法

適用対象: ✔️ Linux VM

この記事では、ローカルの Linux 仮想マシン (VM) パスワードをリセットする 3 つの方法について説明します。 ユーザー アカウントの有効期限が切れている場合、または新しいアカウントを作成する場合は、次の方法を使用して新しいローカル管理者アカウントを作成し、VM へのアクセスを回復できます。

Azure Linux エージェントを使用してパスワードをリセットする

OS ディスクを別の VM に接続せずにパスワードをリセットできます。 この方法では、影響を受ける VM に Azure Linux エージェント をインストールする必要があります。

  1. 影響を受ける VM で Azure Linux エージェント (waagent) サービスが実行されており、Azure portal の準備完了状態であることを確認します。

  2. 環境変数を設定し、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
    
  3. VM へのアクセスを試みます。

SSH キーを更新するには、「 管理ユーザーの管理、AZURE CLI で VMAccess 拡張機能を使用した SSH」を参照

Azure portal の Reset Password 機能を使用して、パスワードまたは SSH キーをリセットすることもできます。

詳細については、Linux 用の vmaccess 拡張機能を参照してください。

シングル ユーザー モードのシリアル コンソールを使用してパスワードをリセットする

コンソールを使用して、VM アクセス用のシングル ユーザー モードでadmin userまたはroot アカウントをリセットできます。

  1. single-user モードプロセスに従って、パスワードをリセットまたは追加します。

  2. SSH とパスワード認証を使用してサーバーにログインしようとする場合は、OpenSSH サーバーでパスワード認証が有効になっていることを確認します。

    1. 次のコマンドを実行して、PasswordAuthentitcation値が /etc/ssh/sshd_configyesまたはnoに設定されているかどうかを確認します。

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. PasswordAuthentication値がnoに設定されている場合は、vinanoなどのテキスト エディターを使用して値をyesに変更します。

  3. passwd コマンドを実行して、admin userまたはroot アカウントの新しいパスワードを作成します。

    passwd <admin_user>
    
  4. 次のコマンドを実行して、SElinux/etc/sysconfig/selinuxenforcing モードであるかどうかを確認します。

    cat /etc/sysconfig/selinux
    
  5. SElinuxenforcing モードの場合は、SElinuxpasswd コマンドで行ったファイルの変更を許可していることを確認します。 パスワードを変更した後、次のコマンドを実行してファイル システムのラベルを変更し直して、変更の読み込みを容易にすることができます。

    touch /.autorelabel
    
  6. 次のコマンドを実行して VM を再起動します。

    /usr/sbin/reboot -f
    
  7. VM へのアクセスを試みます。

修復 VM を使用してパスワードをリセットする

このメソッドは、 サポートされている Linux ディストリビューションとバージョンを使用してテストされています。

Note

Azure ネットワーク仮想アプライアンスに影響する問題が発生している場合、この方法は状況には適用されません。 代わりに、ネットワーク仮想アプライアンスのベンダーに連絡して、パスワードリセットを安全に行う方法に関する手順を確認する必要があります。

vm 修復コマンドを実行して、影響を受ける VM の OS ディスクのコピーがアタッチされた修復 VM を作成できます。 次に、 chroot 環境を使用して、修復 VM に OS ファイル システムのコピーをマウント

Note

または、Azure portal を使用して手動で復旧 VM を作成します。 詳細については、「Azure portal で OS ディスクを復旧 VM に接続して Linux VM のトラブルシューティングを行う」を参照してください。

  1. 次の 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
    
  2. 修復 VM にログインし、chroot 環境をトラブルシューティング

  3. SSH とパスワード認証を使用してサーバーにログインしようとする場合は、OpenSSH サーバーでパスワード認証が有効になっていることを確認します。

    1. 次のコマンドを実行して、PasswordAuthentitcation値が /etc/ssh/sshd_configyesまたはnoに設定されているかどうかを確認します。

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. PasswordAuthentication値がnoに設定されている場合は、vinanoなどのテキスト エディターを使用して値をyesに変更します。

  4. passwd コマンドを実行して、admin userまたはroot アカウントの新しいパスワードを作成します。

    passwd <admin_user>
    
  5. 次のコマンドを実行して、SElinux/etc/sysconfig/selinuxenforcing モードであるかどうかを確認します。

    cat /etc/sysconfig/selinux
    
  6. SElinuxenforcing モードの場合は、SElinuxpasswd コマンドで行ったファイルの変更を許可していることを確認します。 パスワードを変更した後、次のコマンドを実行してファイル システムのラベルを変更し直して、変更の読み込みを容易にすることができます。

    touch /.autorelabel
    
  7. chroot 環境を終了します

  8. 次のコマンドを使用して OS ディスクをスワップして、影響を受ける VM に OS ディスクを再マウントします。

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  9. VM へのアクセスを試みます。

次のステップ

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。