Secure Shell (SSH) を使用して接続し、Windows が動作している Azure 仮想マシンにサインオンする方法
適用対象: ✔️ Windows VM ✔️ フレキシブル スケール セット
Win32 OpenSSH プロジェクトでは、Windows のネイティブ サポートにより、Secure Shell を使用したリモート接続が、いつでも場所を選ばずに使用できるようになります。 この機能は Windows Server バージョン 2019 以降で提供されており、仮想マシン (VM) 拡張機能を使用して古いバージョンの Windows に追加できます。
次の例では、変数を使用します。 変数を環境内で次のように設定できます。
Shell | 例 |
---|---|
Bash/ZSH | myResourceGroup='resGroup10' |
PowerShell | $myResourceGroup='resGroup10' |
SSH を有効にする
最初に、Windows マシンで SSH を有効にする必要があります。
Windows 用の SSH 拡張機能をデプロイします。 この拡張機能により Win32 OpenSSH ソリューションの自動インストールが可能になりますが、同じようにこの機能が新しいバージョンの Windows でも有効になります。 次の例を使用してこの拡張機能をデプロイします。
az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0
TCP ポートを開く
適切なポート (既定では TCP 22) が開いていて VM に接続できることを確認します。
az network nsg rule create -g $myResourceGroup --nsg-name $myNSG -n allow-SSH --priority 1000 --source-address-prefixes 208.130.28.4/32 --destination-port-ranges 22 --protocol TCP
VM にはパブリック IP アドレスが必要です。 VM にパブリック IP アドレスがあるかどうかを確認するには、左側のメニューから [概要] を選択し、[ネットワーク] セクションに注目します。 [パブリック IP アドレス] の横に IP アドレスが表示されている場合、VM にはパブリック IP が割り当てられています。 既存の VM にパブリック IP アドレスを追加する方法について詳しくは、「仮想マシンへのパブリック IP アドレスの関連付け」を参照してください。
VM が実行されていることを確認します。 [概要] タブの [基本] セクションで、VM の状態が [実行中] になっていることを確認します。 VM を起動するには、ページの上部にある [開始] を選択します。
認証
Windows マシンへの認証で、ユーザー名とパスワード、または SSH キーを使用することができます。 Azure では、Windows マシンへの公開キーの自動的なプロビジョニングはサポートされていませんが、RunCommand 拡張機能を使用してこのキーをコピーできます。
SSH とキーの概要
SSH は、セキュリティで保護されていない接続において安全なサインインを可能にする、暗号化された接続プロトコルです。 SSH は暗号化された接続を提供しますが、SSH 接続でパスワードを使用すると、VM はブルートフォース攻撃に対して脆弱になります。 SSH を介して VM に接続する場合は、公開キーと秘密キーのペアを使用することをお勧めします。これは "SSH キー" とも呼ばれています。
公開キーは、VM 上に配置されます。
秘密キーは、ローカル システム上に残ります。 このキーは安全に保管してください。 このキーは共有しないようにしてください。
SSH クライアントを使用して自分の VM (公開キーがある) に接続するときに、リモート VM によってクライアントがテストされ、正しい秘密キーの存在が確認されます。 クライアントに秘密キーがある場合、VM へのアクセス権が付与されます。
組織のセキュリティ ポリシーに応じて、単一の公開キーと秘密キーのペアを再利用して複数の Azure VM とサービスにアクセスできます。 アクセスする VM またはサービスごとに異なるキーのペアを用意する必要はありません。
ご自分の公開キーはだれとでも共有できますが、ご自分の秘密キーへのアクセス権を所有するのは自分 (またはローカル セキュリティ インフラストラクチャ) のみとする必要があります。
サポートされる SSH キーの形式
現在、Azure では次のキーの種類がサポートされています。
- 最小長が 2,048 ビットの SSH プロトコル 2 (SSH-2) RSA (Rivest、Shamir、Adleman)
- 固定長 256 ビットのED25519 キー
現在、elliptic curve Diffie-Hellman (ECDH) や楕円曲線デジタル署名アルゴリズム (ECDSA) などの他のキー形式はサポートされていません。
RunCommand 拡張機能を使用して公開キーをコピーします。
RunCommand 拡張機能は、公開キーを Windows マシンにコピーし、ファイルに正しいアクセス許可があることを確認するための簡単なソリューションを提供します。
az vm run-command invoke -g $myResourceGroup -n $myVM --command-id RunPowerShellScript --scripts "MYPUBLICKEY | Add-Content 'C:\ProgramData\ssh\administrators_authorized_keys' -Encoding UTF8;icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F'"
Az CLI を使用して接続する
Windows マシンに Az SSH
コマンドを使用して接続します。
az ssh vm -g $myResourceGroup -n $myVM --local-user $myUsername
SSH 接続により、特定の TCP ポートのネットワーク トンネルを作成することもできます。 この場合に適したユース ケースが、ポート 3389 を既定とするリモート デスクトップです。
az ssh vm -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389
Azure portal から接続する
- Azure portal に移動して、VM に接続します。 [仮想マシン] を検索して選択します。
- 一覧から仮想マシンを選択します。
- 左側のメニューから [接続] を選択します。
- お好みの接続方法に合ったオプションを選択します。 ポータルで、接続の前提条件を確認することができます。
次のステップ
既存の VM にファイルを転送する方法について確認します。「SCP を使用して VM との間でファイルを移動する」を参照してください。