Azure Bastion を使用して Linux VM への SSH 接続を作成する

この記事では、Azure portal から直接、Azure 仮想ネットワークに置かれている Linux VM への SSH 接続を安全かつシームレスに作成する方法について説明します。 Azure Bastion を使用する場合、VM にクライアント、エージェント、追加のソフトウェアは不要です。

Azure Bastion は、プロビジョニングされる仮想ネットワーク内のすべての VM に対して安全な接続を提供します。 Azure Bastion を使用すると、RDP または SSH を使用した安全なアクセスを提供しながら、お使いの仮想マシンが RDP または SSH ポートを外部に公開しないように保護されます。 詳細については、「Azure Bastion とは」の記事を参照してください。

SSH を使用して Linux 仮想マシンに接続する場合は、認証にユーザー名およびパスワードと SSH キーの両方を使用できます。 SSH 秘密キーは、"-----BEGIN RSA PRIVATE KEY-----" で始まり、"-----END RSA PRIVATE KEY-----" で終わる形式である必要があります。

前提条件

VM が存在する仮想ネットワークの Azure Bastion ホストが設定されていることを確認します。 詳細については、Azure Bastion ホストの作成に関する記事をご覧ください。 Bastion サービスをプロビジョニングし、仮想ネットワークにデプロイしたら、それを使用してこの仮想ネットワーク内の任意の VM に接続できます。

使用できる接続設定と機能は、使用している Bastion SKU によって異なります。 Bastion デプロイで必要な SKU が使用されていることを確認します。

  • SKU レベルごとに使用可能な機能と設定については、Bastion の概要記事の「SKU と機能」セクションを参照してください。
  • Bastion デプロイの SKU レベルをチェックし、必要に応じてアップグレードするには、「Bastion SKU のアップグレード」を参照してください。

必要なロール

接続を作成するには、次のロールが必要です。

  • 仮想マシンに対する閲覧者ロール。
  • 仮想マシンのプライベート IP を使用する NIC に対する閲覧者ロール。
  • Azure Bastion リソースに対する閲覧者ロール。
  • ターゲット仮想マシンの仮想ネットワークに対する閲覧者ロール (Bastion デプロイが、ピアリングされた仮想ネットワーク内の場合)。

Port

SSH 経由で Linux VM に接続するには、お使いの VM で次のポートを開いておく必要があります。

  • 受信ポート: SSH (22) "または"
  • 受信ポート: カスタム値 (Azure Bastion 経由で VM に接続するときに、このカスタム ポートを指定する必要があります)。 この設定は、Basic SKU または Developer SKU では使用できません。

Bastion 接続ページ

  1. Azure portal で、接続先の仮想マシンに移動します。 仮想マシンの [概要] ページの上部で [接続] を選択し、ドロップダウンから [Bastion 経由で接続] を選択します。 これで Bastion ページが開きます。 Bastion ページには左側のウィンドウで直接移動できます。

    仮想マシンの [概要] ページを示すスクリーンショット。

  2. [Bastion] ページで構成できる設定は、Bastion ホストが使用するように構成されている Bastion SKU レベルによって異なります。

    Basic SKU より上位の SKU の接続設定を示すスクリーンショット。

    • Basic SKU より上位の SKU を使用している場合は、[接続の設定] の値 (ポートとプロトコル) が表示され、構成できます。

    • Basic SKU または Developer SKU を使用している場合は、[接続の設定] の値を構成できません。 代わりに、接続には次の既定の設定が使用されます: SSH およびポート 22。

    • 使用可能な [認証の種類] を表示して選択するには、ドロップダウンを使用します。

  3. この記事の次のセクションを使用して、認証設定を構成し、VM に接続します。

Microsoft Entra ID 認証 (プレビュー)

Note

ポータル内の SSH 接続に対する Microsoft Entra ID 認証のサポートはプレビュー段階であり、現在ロールアウト中です。

次の前提条件が満たされている場合、Microsoft Entra ID が VM に接続するための既定のオプションになります。 そうでない場合、Microsoft Entra ID はオプションとして表示されません。

前提条件:

  • VM で Microsoft Entra ID ログインを有効にする必要があります。 Microsoft Entra ID ログインは、VM の作成時に有効にするか、既存の VM に Microsoft Entra ID ログイン拡張機能を追加して有効にすることができます。

  • ユーザーに対して VM で次のいずれかの必要なロールを構成する必要があります。

    • 仮想マシンの管理者ログイン: このロールは、管理者特権でサインインする場合に必要です。
    • 仮想マシンのユーザー ログイン: このロールは、通常のユーザー特権でサインインする場合に必要です。

Microsoft Entra ID を使用して認証するには、次の手順に従います。

Microsoft Entra ID として認証の種類を示すスクリーンショット。

  1. Microsoft Entra ID を使用して認証するには、次の設定を構成します。

    • 接続の設定: Basic SKU より上位の SKU にのみ使用できます。

      • [プロトコル]: SSH を選択します。
      • ポート: ポート番号を指定してください。
    • 認証の種類: ドロップダウンから [Microsoft Entra ID] を選択します。

  2. 新しいブラウザー タブで VM を操作するには、[新しいブラウザータブで開く] を選択します。

  3. [接続] をクリックして VM に接続します。

パスワード認証

ユーザー名とパスワードを使用して認証するには、次の手順に従います。

パスワード認証のスクリーンショット。

  1. ユーザー名とパスワードを使用して認証するには、次の設定を構成します。

    • 接続の設定: Basic SKU より上位の SKU にのみ使用できます。

      • [プロトコル]: SSH を選択します。
      • ポート: ポート番号を指定してください。
    • [認証の種類]: ドロップダウンから [パスワード] を選択します。

    • [ユーザー名]: ユーザー名を入力します。

    • [パスワード]: パスワードを入力します。

  2. 新しいブラウザー タブで VM を操作するには、[新しいブラウザータブで開く] を選択します。

  3. [接続] をクリックして VM に接続します。

パスワード認証 - Azure Key Vault

Azure Key Vault からのパスワードを使用して認証するには、次の手順に従います。

[Azure Key Vault からのパスワード] 認証を示すスクリーンショット。

  1. Azure Key Vault からのパスワードを使用して認証するには、次の設定を構成します。

    • 接続の設定: Basic SKU より上位の SKU にのみ使用できます。

      • [プロトコル]: SSH を選択します。
      • ポート: ポート番号を指定してください。
    • [認証の種類]: ドロップダウンから [Azure Key Vault からのパスワード] を選択します。

    • [ユーザー名]: ユーザー名を入力します。

    • [サブスクリプション]: サブスクリプションを選択します。

    • [Azure Key Vault]: Key Vault を選択します。

    • [Azure Key Vault シークレット]: SSH 秘密キーの値が含まれている Key Vault シークレットを選択します。

      • Azure Key Vault リソースを設定していない場合は、Key Vault の作成に関する記事を参照し、SSH 秘密キーを新しい Key Vault シークレットの値として格納します。

      • Key Vault リソースに格納されているシークレットの一覧表示および取得のアクセス権を持っていることを確認します。 Key Vault リソースのアクセス ポリシーの割り当てと変更については、Key Vault アクセス ポリシーの割り当てに関する記事を参照してください。

      • PowerShell または Azure CLI エクスペリエンスを使用して、SSH 秘密キーをシークレットとして Azure Key Vault に保存します。 Azure Key Vault ポータル エクスペリエンスを使用して秘密キーを保存すると、書式設定に支障をきたし、ログインに失敗します。 ポータル エクスペリエンスを使用して秘密キーをシークレットとして保存し、元の秘密キー ファイルにアクセスできなくなった場合は、「SSH キーを更新する」を参照して、新しい SSH キー ペアでターゲット VM へのアクセスを更新してください。

  2. 新しいブラウザー タブで VM を操作するには、[新しいブラウザータブで開く] を選択します。

  3. [接続] をクリックして VM に接続します。

SSH 秘密キーの認証 - ローカル ファイル

ローカル ファイルからの SSH 秘密キーを使用して認証するには、次の手順に従います。

ローカル ファイルからの秘密キー認証を示すスクリーンショット。

  1. ローカル ファイルからの秘密キーを使用して認証するには、次の設定を構成します。

    • 接続の設定: Basic SKU より上位の SKU にのみ使用できます。

      • [プロトコル]: SSH を選択します。
      • ポート: ポート番号を指定してください。
    • [認証の種類]: ドロップダウンから [ローカル ファイルからの SSH 秘密キー] を選択します。

    • [ユーザー名]: ユーザー名を入力します。

    • [ローカル ファイル]: ローカル ファイルを選択します。

    • [SSH パスフレーズ]: 必要に応じて SSH パスフレーズを入力します。

  2. 新しいブラウザー タブで VM を操作するには、[新しいブラウザータブで開く] を選択します。

  3. [接続] をクリックして VM に接続します。

SSH 秘密キーの認証 - Azure Key Vault

Azure Key Vault に格納されている秘密キーを使用して認証するには、次の手順に従います。

Azure Key Vault に格納された秘密キー認証を示すスクリーンショット。

  1. Azure Key Vault に格納されている秘密キーを使用して認証するには、次の設定を構成します。 Basic SKU の場合、接続設定を構成することはできません。代わりに、既定の接続設定 (SSH とポート 22) が使用されます。

    • 接続の設定: Basic SKU より上位の SKU にのみ使用できます。

      • [プロトコル]: SSH を選択します。
      • ポート: ポート番号を指定してください。
    • [認証の種類]: ドロップダウンから [Azure Key Vault からの SSH 秘密キー] を選択します。

    • [ユーザー名]: ユーザー名を入力します。

    • [サブスクリプション]: サブスクリプションを選択します。

    • [Azure Key Vault]: Key Vault を選択します。

      • Azure Key Vault リソースを設定していない場合は、Key Vault の作成に関する記事を参照し、SSH 秘密キーを新しい Key Vault シークレットの値として格納します。

      • Key Vault リソースに格納されているシークレットの一覧表示および取得のアクセス権を持っていることを確認します。 Key Vault リソースのアクセス ポリシーの割り当てと変更については、Key Vault アクセス ポリシーの割り当てに関する記事を参照してください。

      • PowerShell または Azure CLI エクスペリエンスを使用して、SSH 秘密キーをシークレットとして Azure Key Vault に保存します。 Azure Key Vault ポータル エクスペリエンスを使用して秘密キーを保存すると、書式設定に支障をきたし、ログインに失敗します。 ポータル エクスペリエンスを使用して秘密キーをシークレットとして保存し、元の秘密キー ファイルにアクセスできなくなった場合は、「SSH キーを更新する」を参照して、新しい SSH キー ペアでターゲット VM へのアクセスを更新してください。

    • [Azure Key Vault シークレット]: SSH 秘密キーの値が含まれている Key Vault シークレットを選択します。

  2. 新しいブラウザー タブで VM を操作するには、[新しいブラウザータブで開く] を選択します。

  3. [接続] をクリックして VM に接続します。

次のステップ

Azure Bastion の詳細については、Bastion に関する FAQ をご覧ください。