VMAccess 拡張機能を使用して、Linux VM のパスワードまたは SSH キーをリセットし、SSH 構成を修正し、ディスクの整合性チェックを実行する方法について説明します。

重要

クラシック VM は 2023 年 3 月 1 日に廃止される予定です。

ASM の IaaS リソースを使用する場合は、すぐに移行の計画を開始し、2023 年 3 月 1 日までに完了してください。ASM の IaaS リソースを使用する場合は、すぐに移行の計画を開始し、2023 年 3 月 1 日までに完了してください。 Azure Resource Manager の多数の機能強化を活用するために、早急に切り替えを行うことをお勧めします。

詳細については、「2023 年 3 月 1 日までに IaaS リソースを Azure Resource Manager に移行する」を参照してください。

パスワードを忘れたため、Secure Shell (SSH) キーが正しくないため、または SSH 構成に問題があるために、Azure の Linux 仮想マシンに接続できない場合は、Azure CLI で VMAccessForLinux 拡張機能を使用して、パスワードまたは SSH キーのリセット、SSH 構成の修正、ディスクの整合性のチェックを行います。

注意

Azure には、リソースの作成と操作に関して、2 種類のデプロイ モデルがあります。Resource Manager とクラシックです。 この記事では、クラシック デプロイ モデルの使用方法について説明します。 最新のデプロイメントでは、リソース マネージャー モデルを使用することをお勧めします。 Resource Manager モデルを使用してこれらの手順を実行する方法について説明します。

Azure CLI を使用すると、コマンド ライン インターフェイス (Bash、ターミナル、コマンド プロンプト) から azure vm extension set コマンドを使用してコマンドにアクセスできます。 拡張機能の詳しい使用方法については、 azure help vm extension set を実行します。

Azure CLI を使用すると、次のタスクを実行できます。

前提条件

次の手順を実行する必要があります。

  • Azure CLI をインストールして、ログオンし、アカウントに関連付けられている Azure のリソースを使用するサブスクリプションに接続する必要があります。
  • コマンド プロンプトで以下の内容を入力して、クラシック デプロイ モデルの正しいモードを設定します。
        azure config mode asm
    
  • 新しいパスワードまたは一連の SSH キー (いずれかをリセットする場合)。 SSH の構成をリセットする場合、これらは必要ありません。

パスワードをリセットします。

  1. ローカル コンピューターで、次の内容を含む PrivateConf.json という名前のファイルを作成します。 myUserName とmyP@ssW0rdを独自のユーザー名とパスワードに置き換え、有効期限の日付を設定します。

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

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

SSH キーのリセット

  1. 次の内容を含む PrivateConf.json という名前のファイルを作成します。 myUserNamemySSHKey の値を実際の情報に置き換えます。

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。

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

パスワードと SSH キーのリセット

  1. 次の内容を含む PrivateConf.json という名前のファイルを作成します。 myUserName、mySSHKey、および myP@ssW0rdを独自の情報に置き換える。

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

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

新しい sudo ユーザー アカウントの作成

自身のユーザー名を忘れた場合は、VMAccess を使用して、sudo 権限を持つ新しいユーザーを作成できます。 この場合、既存のユーザー名とパスワードは変更されません。

パスワードを使用したアクセス権を持つ新しい sudo ユーザーを作成するには、「 パスワードのリセット 」のスクリプトを使用して、新しいユーザー名を指定します。

SSH キーを使用したアクセス権を持つ新しい sudo ユーザーを作成するには、「 SSH キーのリセット 」のスクリプトを使用して、新しいユーザー名を指定します。

パスワードと SSH キーをリセット して、パスワードと SSH キーの両方を使用したアクセス権を持つ新しいユーザーを作成することもできます。

SSH 構成をリセットする

SSH の構成が望ましい状態でない場合は、VM にアクセスできなくなる可能性もあります。 VMAccess 拡張機能を使用して、構成を既定の状態にリセットすることができます。 そのために必要なのは、"reset_ssh" キーを "True" に設定することだけです。 拡張機能によって SSH サーバーが再起動し、VM 上の SSH ポートが開いて、SSH 構成が既定値にリセットされます。 ユーザー アカウント (名前、パスワード、または SSH キー) は変更されません。

注意

リセットされる SSH の構成ファイルは、/etc/ssh/sshd_config にあります。

  1. 次の内容を含む PrivateConf.json という名前のファイルを作成します。

        {
        "reset_ssh":"True"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。

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

ユーザーの削除

VM にログインせずに直接ユーザー アカウントを削除するには、このスクリプトを使用できます。

  1. removeUserName を削除するユーザー名に置き換えて、次の内容を含む PrivateConf.json という名前のファイルを作成します。

        {
        "remove_user":"removeUserName"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。

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

VMAccess 拡張機能の状態の表示

VMAccess 拡張機能の状態を表示するには、次のコマンドを実行します。

        azure vm extension get

追加されたディスクの整合性のチェック

Linux 仮想マシンのすべてのディスクに対して fsck を実行するには、次の手順を実行する必要があります。

  1. 次の内容を含む PublicConf.json という名前のファイルを作成します。 チェック ディスクは、仮想マシンに接続されているディスクをチェックするかどうかを表すブール値を受け取ります。

        {   
        "check_disk": "true"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。

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

ディスクの修復

マウントされていないディスクまたはマウント構成エラーが発生したディスクを修復するには、VMAccess 拡張機能を使用して Linux 仮想マシンでマウント構成をリセットします。 myDisk を実際のディスクの名前に置き換えます。

  1. 次の内容を含む PublicConf.json という名前のファイルを作成します。

        {
        "repair_disk":"true",
        "disk_name":"myDisk"
        }
    
  2. myVM を使用中の仮想マシンの名前に置き換えて、次のコマンドを実行します。

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

次のステップ

  • Azure PowerShell コマンドレットまたは Azure Resource Manager テンプレートを使用して、パスワードまたは SSH キーをリセットし、SSH 構成を修正してディスクの整合性のチェックを行う場合、GitHub の VMAccess 拡張機能に関するドキュメントを参照してください。
  • クラシック デプロイ モデルでデプロイされた Linux VM のパスワードまたは SSH キーをリセットする場合は、Azure ポータル を使用することもできます。 Resource Manager デプロイ モデルでデプロイされた Linux VM のパスワードまたは SSH キーをリセットする場合は、現在ポータルを使用することができません。
  • Azure 仮想マシンに VM 拡張機能を使用する方法の詳細については、「仮想マシンの拡張機能とその機能について」を参照してください。