簡単な手順: Azure 内に Linux VM 用の SSH 公開/秘密キーのペアを作成して使用するQuick steps: Create and use an SSH public-private key pair for Linux VMs in Azure

Secure Shell (SSH) キー ペアを使用すると、認証に SSH キーを使う仮想マシン (VM) を Azure に作成でき、サインインするためのパスワードが不要になります。With a secure shell (SSH) key pair, you can create virtual machines (VMs) in Azure that use SSH keys for authentication, eliminating the need for passwords to sign in. この記事では、Linux VM 用の SSH 公開キー ファイルと秘密キー ファイルのペアを短時間で生成して使用する方法について説明します。This article shows you how to quickly generate and use an SSH public-private key file pair for Linux VMs. これらの手順は、Azure Cloud Shell、macOS または Linux ホスト、Windows Subsystem for Linux、および OpenSSH をサポートするその他のツールを使用して完了できます。You can complete these steps with the Azure Cloud Shell, a macOS or Linux host, the Windows Subsystem for Linux, and other tools that support OpenSSH.


既定では、SSH キーを使用して作成された VM は、パスワードが無効にされます。そのため、推測によるブルート フォース攻撃が大幅に困難になります。VMs created using SSH keys are by default configured with passwords disabled, which greatly increases the difficulty of brute-force guessing attacks.

詳しい背景と例については、SSH キー ペアを作成するための詳細な手順に関するページを参照してください。For more background and examples, see Detailed steps to create SSH key pairs.

Windows コンピューター上で、SSH キーを生成して使用するその他の方法については、「Azure 上の Windows で SSH キーを使用する方法」を参照してください。For additional ways to generate and use SSH keys on a Windows computer, see How to use SSH keys with Windows on Azure.

サポートされる SSH キーの形式Supported SSH key formats

Azure は、現在、SSH プロトコル 2 (SSH-2) の RSA 公開キー/秘密キーのペア (最小長: 2048 ビット) をサポートしています。Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. その他のキーの形式 (ED25519 や ECDSA など) はサポートされていません。Other key formats such as ED25519 and ECDSA are not supported.

SSH キー ペアの作成Create an SSH key pair

ssh-keygen コマンドを使用して、SSH 公開キーと秘密キーのファイルを生成します。Use the ssh-keygen command to generate SSH public and private key files. 既定では、これらのファイルは ~/.ssh ディレクトリに作成されます。By default, these files are created in the ~/.ssh directory. 秘密キー ファイルにアクセスするには、別の場所、および任意のパスワード (パスフレーズ) を指定できます。You can specify a different location, and an optional password (passphrase) to access the private key file. 同じ名前の SSH キー ペアが指定された場所にある場合、それらのファイルは上書きされます。If an SSH key pair with the same name exists in the given location, those files are overwritten.

次のコマンドでは、RSA 暗号化と 2048 ビット長を使用して SSH キー ペアが作成されます。The following command creates an SSH key pair using RSA encryption and a bit length of 2048:

ssh-keygen -t rsa -b 2048

Azure CLI を使用して az vm create コマンドで VM を作成する場合は、必要に応じて --generate-ssh-keys オプションを使用して、SSH 公開キー ファイルと秘密キー ファイルを生成できます。If you use the Azure CLI to create your VM with the az vm create command, you can optionally generate SSH public and private key files using the --generate-ssh-keys option. --ssh-dest-key-path オプションで指定されない限り、キー ファイルは ~/.ssh ディレクトリに格納されます。The key files are stored in the ~/.ssh directory unless specified otherwise with the --ssh-dest-key-path option. --generate-ssh-keys オプションでは、既存のキー ファイルを上書きすることはありません。代わりにエラーを返します。The --generate-ssh-keys option will not overwrite existing key files, instead returning an error. 次のコマンドで、VMnameRGname を独自の値に置き換えます。In the following command, replace VMname and RGname with your own values:

az vm create --name VMname --resource-group RGname --generate-ssh-keys 

VM をデプロイするときに SSH 公開キーを提供するProvide an SSH public key when deploying a VM

認証するために SSH キーを使用する Linux VM を作成するには、Azure portal、Azure CLI、Azure Resource Manager テンプレート、またはその他の方法を使用して VM を作成するときに SSH 公開キーを指定します。To create a Linux VM that uses SSH keys for authentication, specify your SSH public key when creating the VM using the Azure portal, Azure CLI, Azure Resource Manager templates, or other methods:

SSH 公開キーの形式になじみのない場合は、次の cat コマンドでご利用の公開キーを表示できます。必要に応じて、~/.ssh/id_rsa.pub を独自の公開キー ファイルのパスとファイル名に置き換えます。If you're not familiar with the format of an SSH public key, you can display your public key with the following cat command, replacing ~/.ssh/id_rsa.pub with the path and filename of your own public key file if needed:

cat ~/.ssh/id_rsa.pub

一般的な公開キーの値は次の例のようになります。A typical public key value looks like this example:

ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname

公開キー ファイルの内容をコピーし、Azure portal または Resource Manager テンプレートに貼り付けて使用する場合は、行末の空白スペースをコピーしないように注意してください。If you copy and paste the contents of the public key file to use in the Azure portal or a Resource Manager template, make sure you don't copy any trailing whitespace. macOS で公開キーをコピーするには、公開キー ファイルを pbcopy にパイプすることができます。To copy a public key in macOS, you can pipe the public key file to pbcopy. Linux と同様に、xclip などのプログラムに公開キー ファイルをパイプすることができます。Similarly in Linux, you can pipe the public key file to programs such as xclip.

キー ペアの作成時に別の場所を指定しない限り、Azure 内の Linux VM 上に配置した公開キーは、既定で ~/.ssh/id_rsa.pub に格納されます。The public key that you place on your Linux VM in Azure is by default stored in ~/.ssh/id_rsa.pub, unless you specified a different location when you created the key pair. Azure CLI 2.0 を使用して既存の公開キーで VM を作成するには、az vm create コマンドを --ssh-key-value オプション付きで使用することで、この公開キーの値または任意で場所を指定します。To use the Azure CLI 2.0 to create your VM with an existing public key, specify the value and optionally the location of this public key using the az vm create command with the --ssh-key-value option. 次のコマンドで、VMnameRGnamekeyFile を独自の値に置き換えます。In the following command, replace VMname, RGname, and keyFile with your own values:

az vm create --name VMname --resource-group RGname --ssh-key-value @keyFile

VM への SSH 接続SSH into your VM

公開キーを Azure VM に、秘密キーをローカル システム上にデプロイした状態で、ご利用の VM の IP アドレスまたは DNS 名を使用して、VM に SSH 接続します。With the public key deployed on your Azure VM, and the private key on your local system, SSH into your VM using the IP address or DNS name of your VM. 次のコマンドの azureusermyvm.westus.cloudapp.azure.com を、管理者のユーザー名と完全修飾ドメイン名 (または IP アドレス) に置き換えてください。In the following command, replace azureuser and myvm.westus.cloudapp.azure.com with the administrator user name and the fully qualified domain name (or IP address):

ssh azureuser@myvm.westus.cloudapp.azure.com

キー ペアを作成するときにパスフレーズを指定した場合は、ログイン プロセス中に入力を求められたら、そのパスフレーズを入力します。If you specified a passphrase when you created your key pair, enter that passphrase when prompted during the login process. VM は ~/.ssh/known_hosts ファイルに追加されます。Azure VM にある公開キーが変更されるか、サーバー名が ~/.ssh/known_hosts から削除されるまで、再度接続を求められることはありません。The VM is added to your ~/.ssh/known_hosts file, and you won't be asked to connect again until either the public key on your Azure VM changes or the server name is removed from ~/.ssh/known_hosts.

VM が Just-In-Time アクセス ポリシーを使用している場合、VM に接続するにはアクセス権を要求する必要があります。If the VM is using the just-in-time access policy, you need to request access before you can connect to the VM. Just-In-Time ポリシーの詳細については、Just in Time ポリシーを使用した仮想マシン アクセスの管理に関するページを参照してください。For more information about the just-in-time policy, see Manage virtual machine access using the just in time policy.

次の手順Next steps