Linux VM に接続する

Azure で Linux 仮想マシンをホストする場合、その VM にアクセスするための最も一般的な方法は、Secure Shell プロトコル (SSH) を使用することです。 Linux と Windows で一般的に使用される任意の標準 SSH クライアントを介して接続できます。 任意のブラウザーから Azure Cloud Shell を使用することもできます。

このドキュメントでは、パブリック IP が割り当てられた VM に SSH で接続する方法について説明します。 パブリック IP がない VM に接続する必要がある場合は、Azure Bastion サービスに関する記事を参照してください。

前提条件

  • SSH キーの組が必要です。 キーの組がまだない場合、デプロイ プロセス中に Azure によって作成されます。 手動での作成に関して不明な点がある場合は、「Azure 内に Linux VM 用の SSH 公開/秘密キーのペアを作成して使用する」を参照してください。

  • 既存のネットワーク セキュリティ グループ (NSG) が必要です。 ほとんどの VM には既定で NSG がありますが、まだない場合は、作成して手動でアタッチできます。 詳細については、「ネットワーク セキュリティ グループを作成、変更、削除」をご覧ください。

  • Linux VM に接続するには、適切なポートを開く必要があります。 通常、SSH ではポート 22 が使用されます。 次の手順はポート 22 を想定していますが、他のポート番号でも手順は同じです。 SSH 用の適切なポートが開放されていることは、トラブルシューティング ツールを使用するか、VM の設定を手動でチェックすることで確認できます。 ポート 22 が開放されていることを確認するには:

    1. VM のページ上で、左側のメニューから [ネットワーク] を選択します。

    2. [ネットワーク] ページで、VM への接続に使用するコンピューターの IP アドレスを送信元とするポート 22 の TCP を許可する規則があるかどうかを確認します。 規則が存在する場合は、次のセクションに進んでください。

      Screenshot showing how to check to see if there's already a rule allowing S S H connections.

    3. 規則が存在しない場合は、[受信ポートの規則を追加する] を選択して追加します。

    4. [サービス] で、ドロップダウンから [SSH] を選択します。

      Screenshot showing where to choose S S H when creating a new N S G rule.

    5. 必要に応じて [優先度][ソース] を編集します。

    6. [名前] には「SSH」と入力します。

    7. 終了したら、 [追加] を選択します。

    8. 受信ポート規則のテーブルに SSH 規則が追加されます。

  • VM にはパブリック IP アドレスが必要です。 VM にパブリック IP アドレスがあるかどうかを確認するには、左側のメニューから [概要] を選択し、[ネットワーク] セクションに注目します。 [パブリック IP アドレス] の横に IP アドレスが表示されている場合、VM にはパブリック IP が割り当てられています。

    VM にパブリック IP アドレスがない場合は、このように表示されます。

    Screenshot of how the networking section looks when you don't have a public I P.

    既存の VM にパブリック IP アドレスを追加する方法について詳しくは、「仮想マシンへのパブリック IP アドレスの関連付け」を参照してください。

  • VM が実行されていることを確認します。 [概要] タブの [基本] セクションで、VM の状態が [実行中] になっていることを確認します。 VM を起動するには、ページの上部にある [開始] を選択します。

    Screenshot showing how to check to make sure your virtual machine is in the running state.

接続に問題がある場合は、ポータルを使用することもできます。

  1. Azure portal に移動して、VM に接続します。 [仮想マシン] を検索して選択します。
  2. 一覧から仮想マシンを選択します。
  3. 左側のメニューから [接続] を選択します。
  4. お好みの接続方法に合ったオプションを選択します。 ポータルで、接続の前提条件を確認することができます。

VM に接続します

上記の前提条件を満たしたら、VM に接続する準備は完了です。 任意の SSH クライアントを開きます。 SSH クライアント コマンドは、通常、Linux、macOS、Windows に含まれています。 Windows 7 以前を使用している場合は、Win32 OpenSSH が既定で含まれていないため、WSL をインストールするか、ブラウザーから Azure Cloud Shell を使用することを検討してください。

Note

次の例では、SSH キーの形式が key.pem であることを想定しています。 CLI または Azure PowerShell を使用してキーをダウンロードした場合は、id_rsa 形式である可能性があります。

新しいキーの組を使用した SSH

  1. 公開キーと秘密キーが正しいディレクトリにあることを確認します。 ディレクトリは通常 ~/.ssh です。

    通常、キーを手動で生成した場合、または CLI で生成した場合、キーは既にそこに存在します。 一方、Azure portal から pem 形式でダウンロードした場合は、それらを適切な場所に移動する必要があります。 キーの移動は、mv PRIVATE_KEY_SOURCE PRIVATE_KEY_DESTINATION の構文で実行されます。

    たとえばキーが Downloads フォルダーに存在し、SSH キーの 名前が myKey.pem である場合、次のように入力します。

    mv /Downloads/myKey.pem ~/.ssh
    

    注意

    WSL を使用している場合、ローカル ファイルは mnt/c/ ディレクトリにあります。 したがって、ダウンロード フォルダーと SSH キーへのパスは /mnt/c/Users/{USERNAME}/Downloads/myKey.pem になります

  2. 次を実行して、秘密キーへの読み取り専用アクセス権があることを確認します

    chmod 400 ~/.ssh/myKey.pem
    
  3. ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP という構文で SSH コマンドを実行します。

    たとえば、作成したユーザー名が azureuser で、VM の パブリック IP アドレスが 20.51.230.13 である場合、次のように入力します。

    ssh -i ~/.ssh/myKey.pem azureuser@20.51.230.13
    
  4. 返されたフィンガープリントを確認します。

    この VM にこれまで接続したことがない場合は、ホストのフィンガープリントを確認するように求められます。 提示されたフィンガープリントを受け入れたくなりますが、そのようにすると、中間者攻撃の危険性にさらされます。 ホストのフィンガープリントは常に検証するようにしてください。 これは、クライアントから初めて接続するときにのみ行う必要があります。 ポータルからホストのフィンガープリントを取得するには、実行コマンド機能を使用してコマンドを実行します。

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  5. Success! これで VM に接続されるはずです。 接続できない場合は、SSH 接続のトラブルシューティングに関する記事を参照してください。

既存の公開キーを使用した SSH

  1. SSH クライアントで次のコマンドを実行します。 この例では、20.51.230.13 が VM のパブリック IP アドレスで、azureuser が、VM の作成時に作成したユーザー名です。

    ssh azureuser@20.51.230.13
    
  2. 返されたフィンガープリントを確認します。

    現在の SSH クライアントから目的の VM にこれまで接続したことがない場合は、ホストのフィンガープリントを確認するように求められます。 既定のオプションは、提示されたフィンガープリントを受け入れるものですが、"中間者攻撃" の危険性にさらされます。 ホストのフィンガープリントは常に検証する必要があります。これは、クライアントが初めて接続するときにのみ行う必要があります。 ポータルからホストのフィンガープリントを取得するには、実行コマンド機能を使用して次のコマンドを実行します。

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. Success! これで VM に接続されるはずです。 接続できない場合は、トラブルシューティング ガイドを参照してください。

パスワード認証

警告

この種類の認証方法は、SSH キーの組と比べてセキュリティが低いため、推奨されません。

  1. SSH クライアントで次のコマンドを実行します。 この例では、20.51.230.13 が VM のパブリック IP アドレスで、azureuser が、VM の作成時に作成したユーザー名です。

    ssh azureuser@20.51.230.13
    

    パスワードまたはユーザー名を忘れた場合は、Azure VM へのアクセスのリセットに関する記事を参照してください。

  2. 返されたフィンガープリントを確認します。

    現在の SSH クライアントから目的の VM にこれまで接続したことがない場合は、ホストのフィンガープリントを確認するように求められます。 既定のオプションは、提示されたフィンガープリントを受け入れるものですが、"中間者攻撃" の危険性にさらされます。 ホストのフィンガープリントは常に検証する必要があります。これは、クライアントが初めて接続するときにのみ行う必要があります。 ポータルからホストのフィンガープリントを取得するには、実行コマンド機能を使用して次のコマンドを実行します。

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. Success! これで VM に接続されるはずです。 接続できない場合は、SSH 接続のトラブルシューティングに関する記事を参照してください。

次のステップ

既存の VM にファイルを転送する方法について確認します。「SCP を使用して VM との間でファイルを移動する」を参照してください。