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 が開放されていることを確認するには:
VM のページ上で、左側のメニューから [ネットワーク] を選択します。
[ネットワーク] ページで、VM への接続に使用するコンピューターの IP アドレスを送信元とするポート 22 の TCP を許可する規則があるかどうかを確認します。 規則が存在する場合は、次のセクションに進んでください。
規則が存在しない場合は、[受信ポートの規則を追加する] を選択して追加します。
[サービス] で、ドロップダウンから [SSH] を選択します。
必要に応じて [優先度] と [ソース] を編集します。
[名前] には「SSH」と入力します。
終了したら、 [追加] を選択します。
受信ポート規則のテーブルに SSH 規則が追加されます。
VM にはパブリック IP アドレスが必要です。 VM にパブリック IP アドレスがあるかどうかを確認するには、左側のメニューから [概要] を選択し、[ネットワーク] セクションに注目します。 [パブリック IP アドレス] の横に IP アドレスが表示されている場合、VM にはパブリック IP が割り当てられています。
VM にパブリック IP アドレスがない場合は、このように表示されます。
既存の VM にパブリック IP アドレスを追加する方法について詳しくは、「仮想マシンへのパブリック IP アドレスの関連付け」を参照してください。
VM が実行されていることを確認します。 [概要] タブの [基本] セクションで、VM の状態が [実行中] になっていることを確認します。 VM を起動するには、ページの上部にある [開始] を選択します。
接続に問題がある場合は、ポータルを使用することもできます。
- Azure portal に移動して、VM に接続します。 [仮想マシン] を検索して選択します。
- 一覧から仮想マシンを選択します。
- 左側のメニューから [接続] を選択します。
- お好みの接続方法に合ったオプションを選択します。 ポータルで、接続の前提条件を確認することができます。
VM に接続します
上記の前提条件を満たしたら、VM に接続する準備は完了です。 任意の SSH クライアントを開きます。 SSH クライアント コマンドは、通常、Linux、macOS、Windows に含まれています。 Windows 7 以前を使用している場合は、Win32 OpenSSH が既定で含まれていないため、WSL をインストールするか、ブラウザーから Azure Cloud Shell を使用することを検討してください。
Note
次の例では、SSH キーの形式が key.pem であることを想定しています。 CLI または Azure PowerShell を使用してキーをダウンロードした場合は、id_rsa または ED25519 形式である可能性があります。
新しいキーの組を使用した SSH
公開キーと秘密キーが正しいディレクトリにあることを確認します。 ディレクトリは通常
~/.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
になります次を実行して、秘密キーへの読み取り専用アクセス権があることを確認します
chmod 400 ~/.ssh/myKey.pem
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
返されたフィンガープリントを確認します。
この VM にこれまで接続したことがない場合は、ホストのフィンガープリントを確認するように求められます。 提示されたフィンガープリントを受け入れたくなりますが、そのようにすると、中間者攻撃の危険性にさらされます。 ホストのフィンガープリントは常に検証するようにしてください。 これは、クライアントから初めて接続するときにのみ行う必要があります。 ポータルからホストのフィンガープリントを取得するには、実行コマンド機能を使用してコマンドを実行します。
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
Success! これで VM に接続されるはずです。 接続できない場合は、SSH 接続のトラブルシューティングに関する記事を参照してください。
既存の公開キーを使用した SSH
SSH クライアントで次のコマンドを実行します。 この例では、20.51.230.13 が VM のパブリック IP アドレスで、azureuser が、VM の作成時に作成したユーザー名です。
ssh azureuser@20.51.230.13
返されたフィンガープリントを確認します。
現在の SSH クライアントから目的の VM にこれまで接続したことがない場合は、ホストのフィンガープリントを確認するように求められます。 既定のオプションは、提示されたフィンガープリントを受け入れるものですが、"中間者攻撃" の危険性にさらされます。 ホストのフィンガープリントは常に検証する必要があります。これは、クライアントが初めて接続するときにのみ行う必要があります。 ポータルからホストのフィンガープリントを取得するには、実行コマンド機能を使用して次のコマンドを実行します。
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
Success! これで VM に接続されるはずです。 接続できない場合は、トラブルシューティング ガイドを参照してください。
パスワード認証
警告
この種類の認証方法は、SSH キーの組と比べてセキュリティが低いため、推奨されません。
SSH クライアントで次のコマンドを実行します。 この例では、20.51.230.13 が VM のパブリック IP アドレスで、azureuser が、VM の作成時に作成したユーザー名です。
ssh azureuser@20.51.230.13
パスワードまたはユーザー名を忘れた場合は、Azure VM へのアクセスのリセットに関する記事を参照してください。
返されたフィンガープリントを確認します。
現在の SSH クライアントから目的の VM にこれまで接続したことがない場合は、ホストのフィンガープリントを確認するように求められます。 既定のオプションは、提示されたフィンガープリントを受け入れるものですが、"中間者攻撃" の危険性にさらされます。 ホストのフィンガープリントは常に検証する必要があります。これは、クライアントが初めて接続するときにのみ行う必要があります。 ポータルからホストのフィンガープリントを取得するには、実行コマンド機能を使用して次のコマンドを実行します。
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
Success! これで VM に接続されるはずです。 接続できない場合は、SSH 接続のトラブルシューティングに関する記事を参照してください。
次のステップ
既存の VM にファイルを転送する方法について確認します。「SCP を使用して VM との間でファイルを移動する」を参照してください。