VMAccess 拡張機能を使用して、Linux VM のパスワードまたは SSH キーをリセットし、SSH 構成を修正し、ディスクの整合性チェックを実行する方法について説明します。How to reset a Linux VM password or SSH key, fix the SSH configuration, and check disk consistency using the VMAccess extension

パスワードを忘れたため、Secure Shell (SSH) キーが正しくないため、または SSH 構成に問題があるために、Azure の Linux 仮想マシンに接続できない場合は、Azure CLI で VMAccessForLinux 拡張機能を使用して、パスワードまたは SSH キーのリセット、SSH 構成の修正、ディスクの整合性のチェックを行います。If you can't connect to a Linux virtual machine on Azure because of a forgotten password, an incorrect Secure Shell (SSH) key, or a problem with the SSH configuration, use the VMAccessForLinux extension with the Azure CLI to reset the password or SSH key, fix the SSH configuration, and check disk consistency.

重要

Azure には、リソースの作成と操作に関して、 Resource Manager とクラシックの 2 種類のデプロイメント モデルがあります。Azure has two different deployment models for creating and working with resources: Resource Manager and Classic. この記事では、クラシック デプロイ モデルの使用方法について説明します。This article covers using the Classic deployment model. 最新のデプロイでは、リソース マネージャー モデルを使用することをお勧めします。Microsoft recommends that most new deployments use the Resource Manager model. Resource Manager モデルを使用してこれらの手順を実行する方法について説明します。Learn how to perform these steps using the Resource Manager model.

Azure CLI を使用すると、コマンド ライン インターフェイス (Bash、ターミナル、コマンド プロンプト) から azure vm extension set コマンドを使用してコマンドにアクセスできます。With the Azure CLI, you use the azure vm extension set command from your command-line interface (Bash, Terminal, Command prompt) to access commands. 拡張機能の詳しい使用方法については、 azure help vm extension set を実行します。Run azure help vm extension set for detailed extension usage.

Azure CLI を使用すると、次のタスクを実行できます。With the Azure CLI, you can do the following tasks:

前提条件Prerequisites

次の手順を実行する必要があります。You will need to do the following:

  • Azure CLI をインストールして、ログオンし、アカウントに関連付けられている Azure のリソースを使用するサブスクリプションに接続する必要があります。You will need to install the Azure CLI and connect to your subscription to use Azure resources associated with your account.
  • コマンド プロンプトで以下の内容を入力して、クラシック デプロイメント モデルの正しいモードを設定します。Set the correct mode for the classic deployment model by typing the following at the command prompt: azure config mode asm
  • 新しいパスワードまたは一連の SSH キー (いずれかをリセットする場合)。Have a new password or set of SSH keys, if you want to reset either one. SSH の構成をリセットする場合、これらは必要ありません。You don't need these if you want to reset the SSH configuration.

パスワードのリセットReset the password

  1. ローカル コンピューターで、次の内容を含む PrivateConf.json という名前のファイルを作成します。Create a file on your local computer named PrivateConf.json with these lines. myUserNamemyP@ssW0rd を実際のユーザー名とパスワードに置き換え、独自の有効期限の日付を設定します。Replace myUserName and myP@ssW0rd with your own user name and password and set your own date for expiration.

        {
        "username":"myUserName",
        "password":"myP@ssW0rd",
        "expiration":"2020-01-01"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* –-private-config-path PrivateConf.json
    

SSH キーのリセットReset the SSH key

  1. 次の内容を含む PrivateConf.json という名前のファイルを作成します。Create a file named PrivateConf.json with these contents. myUserNamemySSHKey の値を実際の情報に置き換えます。Replace the myUserName and mySSHKey values with your own information.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command, substituting the name of your virtual machine for myVM.

     azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

パスワードと SSH キーのリセットReset both the password and the SSH key

  1. 次の内容を含む PrivateConf.json という名前のファイルを作成します。Create a file named PrivateConf.json with these contents. myUserNamemySSHKeymyP@ssW0rd の値を実際の情報に置き換えます。Replace the myUserName, mySSHKey and myP@ssW0rd values with your own information.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey",
        "password":"myP@ssW0rd"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set MyVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

新しい sudo ユーザー アカウントの作成Create a new sudo user account

自身のユーザー名を忘れた場合は、VMAccess を使用して、sudo 権限を持つ新しいユーザーを作成できます。If you forget your user name, you can use VMAccess to create a new one with the sudo authority. この場合、既存のユーザー名とパスワードは変更されません。In this case, the existing user name and password will not be modified.

パスワードを使用したアクセス権を持つ新しい sudo ユーザーを作成するには、「 パスワードのリセット 」のスクリプトを使用して、新しいユーザー名を指定します。To create a new sudo user with password access, use the script in Reset the password and specify the new user name.

SSH キーを使用したアクセス権を持つ新しい sudo ユーザーを作成するには、「 SSH キーのリセット 」のスクリプトを使用して、新しいユーザー名を指定します。To create a new sudo user with SSH key access, use the script in Reset the SSH key and specify the new user name.

パスワードと SSH キーをリセット して、パスワードと SSH キーの両方を使用したアクセス権を持つ新しいユーザーを作成することもできます。You can also use Reset the password and the SSH key to create a new user with both password and SSH key access.

SSH 構成のリセットReset the SSH configuration

SSH の構成が望ましい状態でない場合は、VM にアクセスできなくなる可能性もあります。If the SSH configuration is in an undesired state, you might also lose access to the VM. VMAccess 拡張機能を使用して、構成を既定の状態にリセットすることができます。You can use the VMAccess extension to reset the configuration to its default state. そのために必要なのは、"reset_ssh" キーを "True" に設定することだけです。To do so, you just need to set the “reset_ssh” key to “True”. 拡張機能によって SSH サーバーが再起動し、VM 上の SSH ポートが開いて、SSH 構成が既定値にリセットされます。The extension will restart the SSH server, open the SSH port on your VM, and reset the SSH configuration to default values. ユーザー アカウント (名前、パスワード、または SSH キー) は変更されません。The user account (name, password or SSH keys) will not be changed.

注意

リセットされる SSH の構成ファイルは、/etc/ssh/sshd_config にあります。The SSH configuration file that gets reset is located at /etc/ssh/sshd_config.

  1. 次の内容を含む PrivateConf.json という名前のファイルを作成します。Create a file named PrivateConf.json with this content.

        {
        "reset_ssh":"True"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

ユーザーの削除Delete a user

VM にログインせずに直接ユーザー アカウントを削除するには、このスクリプトを使用できます。If you want to delete a user account without logging into to the VM directly, you can use this script.

  1. removeUserName を削除するユーザー名に置き換えて、次の内容を含む PrivateConf.json という名前のファイルを作成します。Create a file named PrivateConf.json with this content, substituting the user name to remove for removeUserName.

        {
        "remove_user":"removeUserName"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

VMAccess 拡張機能の状態の表示Display the status of the VMAccess extension

VMAccess 拡張機能の状態を表示するには、次のコマンドを実行します。To display the status of the VMAccess extension, run this command.

        azure vm extension get

追加されたディスクの整合性のチェックCheck consistency of added disks

Linux 仮想マシンのすべてのディスクに対して fsck を実行するには、次の手順を実行する必要があります。To run fsck on all disks in your Linux virtual machine, you will need to do the following:

  1. 次の内容を含む PublicConf.json という名前のファイルを作成します。Create a file named PublicConf.json with this content. チェック ディスクは、仮想マシンに接続されているディスクをチェックするかどうかを表すブール値を受け取ります。Check Disk takes a boolean for whether to check disks attached to your virtual machine or not.

        {   
        "check_disk": "true"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command to execute, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json 
    

ディスクの修復Repair disks

マウントされていないディスクまたはマウント構成エラーが発生したディスクを修復するには、VMAccess 拡張機能を使用して Linux 仮想マシンでマウント構成をリセットします。To repair disks that are not mounting or have mount configuration errors, use the VMAccess extension to reset the mount configuration on your Linux virtual machine. myDisk を実際のディスクの名前に置き換えます。Substituting the name of your disk for myDisk.

  1. 次の内容を含む PublicConf.json という名前のファイルを作成します。Create a file named PublicConf.json with this content.

        {
        "repair_disk":"true",
        "disk_name":"myDisk"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。Run this command to execute, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json
    

次のステップNext steps

  • Azure PowerShell コマンドレットまたは Azure Resource Manager テンプレートを使用して、パスワードまたは SSH キーをリセットし、SSH 構成を修正してディスクの整合性のチェックを行う場合、GitHub の VMAccess 拡張機能に関するドキュメントを参照してください。If you want to use Azure PowerShell cmdlets or Azure Resource Manager templates to reset the password or SSH key, fix the SSH configuration, and check disk consistency, see the VMAccess extension documentation on GitHub.
  • クラシック デプロイメント モデルでデプロイされた Linux VM のパスワードまたは SSH キーをリセットする場合は、 Azure ポータル を使用することもできます。You can also use the Azure portal to reset the password or SSH key of a Linux VM deployed in the classic deployment model. リソース マネージャーのデプロイ モデルでデプロイされた Linux VM のパスワードまたは SSH キーをリセットする場合は、現在ポータルを使用することができません。You can't currently use the portal do to this for a Linux VM deployed in the Resource Manager deployment model.
  • Azure 仮想マシンに VM 拡張機能を使用する方法の詳細については、「仮想マシンの拡張機能とその機能について」を参照してください。See About virtual machine extensions and features for more about using VM extensions for Azure virtual machines.