Azure 上の Windows で SSH キーを使用する方法How to use SSH keys with Windows on Azure

この記事では、Windows コンピューターで Secure Shell (SSH) キーを生成して使用し、Azure に Linux 仮想マシン (VM) を作成して接続する方法について説明します。This article introduces ways to generate and use secure shell (SSH) keys on a Windows computer to create and connect to a Linux virtual machine (VM) in Azure. Linux または macOS のクライアントから SSH キーを使用する方法については、クイック ガイダンスまたは詳細ガイダンスをご覧ください。To use SSH keys from a Linux or macOS client, see the quick or detailed guidance.

SSH とキーの概要Overview of SSH and keys

SSH は、セキュリティで保護されていない接続においてセキュリティで保護されたログインを可能にする、暗号化された接続プロトコルです。SSH is an encrypted connection protocol that allows secure logins over unsecured connections. SSH は、Azure でホストされる Linux VM の既定の接続プロトコルです。It is the default connection protocol for Linux VMs hosted in Azure. SSH 自体は暗号化された接続を提供しますが、SSH 接続でパスワードを使用すると、VM はブルートフォース攻撃やパスワードの推測に対して脆弱になります。Although SSH itself provides an encrypted connection, using passwords with SSH connections still leaves the VM vulnerable to brute-force attacks or guessing of passwords. SSH を使用して VM に接続するためのより安全で推奨される方法は、公開キーと秘密キーのペア (SSH キーとも呼ばれます) を使用する方法です。A more secure and preferred method of connecting to a VM using SSH is by using a public-private key pair, also known as SSH keys.

  • 公開キーは、Linux VM か、公開キー暗号化で使用する他のサービスに配置します。The public key is placed on your Linux VM, or any other service that you wish to use with public-key cryptography.

  • 秘密キーは、SSH 接続するときに自分の身元を証明するために渡すキーです。The private key is what you present to your Linux VM when you make an SSH connection, to verify your identity. このキーは安全に保管してください。Protect this private key. このキーは共有しないようにしてください。Do not share it.

組織のセキュリティ ポリシーに応じて、単一の公開キーと秘密キーのペアを再利用して複数の Azure VM とサービスにアクセスできます。Depending on your organization's security policies, you can reuse a single public-private key pair to access multiple Azure VMs and services. アクセスする VM またはサービスごとに異なるキーのペアを用意する必要はありません。You do not need a separate pair of keys for each VM or service you wish to access.

公開キーはだれとでも共有できますが、秘密キーを所有するのは自分 (またはローカル セキュリティ インフラストラクチャ) だけです。Your public key can be shared with anyone; but only you (or your local security infrastructure) possess your private key.

サポートされる 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.

Windows パッケージと SSH クライアントWindows packages and SSH clients

Azure の Linux VM に接続して管理するには、SSH クライアントを使用します。You connect to and manage Linux VMs in Azure using an SSH client. Linux または macOS を実行しているコンピューターには、通常、SSH キーを生成して管理し、SSH 接続を行うための、SSH コマンドのスイートがあります。Computers running Linux or macOS usually have a suite of SSH commands to generate and manage SSH keys and to make SSH connections.

Windows コンピューターでは、それに相当する SSH コマンドが常にインストールされることはありません。Windows computers do not always have comparable SSH commands installed. Windows Subsystem for Linux を含む Windows 10 のバージョンでは、SSH クライアントなどのユーティリティを Bash シェル内でネイティブに実行したり、それらにアクセスしたりすることができます。Windows 10 versions that include the Windows Subsystem for Linux allow you to run and access utilities such as an SSH client natively within a Bash shell.

Bash for Windows 以外のものを使用する場合、ローカルにインストールできる一般的な Windows SSH クライアントは、以下のパッケージに含まれています。If you wish to use something other than Bash for Windows, common Windows SSH clients you can install locally are included in the following packages:

もう 1 つのオプションは、Azure Cloud Shell の Bash で利用可能な SSH ユーティリティを使うことです。Another option is to use the SSH utilities available in Bash in the Azure Cloud Shell.

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

このセクションでは、Windows 上で SSH キー ペアを作成するための 2 つのオプションを示します。This section shows you two options to create an SSH key pair on Windows.

ssh-keygen で SSH キーを作成するCreate SSH keys with ssh-keygen

Bash for Windows や GitBash (または Azure Cloud Shell の Bash) などのコマンド シェルを実行できる場合は、ssh-keygen コマンドを使用して SSH キー ペアを作成します。If you can run a command shell such as Bash for Windows or GitBash (or Bash in Azure Cloud Shell), create an SSH key pair using the ssh-keygen command. 次のコマンドを入力して、プロンプトに答えます。Type the following command, and answer the prompts. SSH キー ペアが現在の場所にある場合、それらのファイルは上書きされます。If an SSH key pair exists in the current location, those files are overwritten.

ssh-keygen -t rsa -b 2048

背景情報と詳細情報については、ssh-keygen でキーを作成する手順の概要または詳細をご覧ください。For more background and information, see the quick or detailed steps to create the keys with ssh-keygen.

PuTTYgen で SSH キーを作成するCreate SSH keys with PuTTYgen

GUI ベースのツールを使って SSH キーを作成する場合は、PuTTY のダウンロード パッケージに含まれる PuTTYgen キー ジェネレーターを使うことができます。If you prefer to use a GUI-based tool to create SSH keys, you can use the PuTTYgen key generator, included with the PuTTY download package.

PuTTYgen で SSH RSA キー ペアを作成するには:To create an SSH RSA key pair with PuTTYgen:

  1. PuTTYgen を開始します。Start PuTTYgen.

  2. [Generate](生成) をクリックします。Click Generate. 既定では、PuTTYgen は 2048 ビットの SSH-2 RSA キーを生成します。By default PuTTYgen generates a 2048-bit SSH-2 RSA key.

  3. 空白領域にマウスを移動して、キーにある程度のランダムさを生成します。Mouse over the blank area to generate some randomness for the key.

  4. 公開キーが生成された後、必要に応じて、パスフレーズを入力して確認します。After the public key is generated, optionally enter and confirm a passphrase. SSH キーを使って VM に対する認証を行うときに、パスフレーズの入力を求められます。You will be prompted for the passphrase when you authenticate to the VM with your SSH key. パスフレーズを使用しない場合、だれかが秘密キーを入手すると、その人物はそのキーを使用するすべての VM またはサービスにログインできるようになります。Without a passphrase, if someone obtains your private key, they can log in to any VM or service that uses that key. そのため、パスフレーズを作成することをお勧めします。We recommend you create a passphrase. ただし、パスフレーズを忘れた場合、それを回復する方法はありません。However, if you forget the passphrase, there is no way to recover it.

  5. 公開キーがウィンドウの上部に表示されます。The public key is displayed at the top of the window. Linux VM を作成するときに、この 1 行形式の公開キーをコピーし、Azure Portal または Azure Resource Manager テンプレートに貼り付けます。You copy and paste this one-line format public key into the Azure portal or an Azure Resource Manager template when you create a Linux VM. [Save public key (公開キーを保存)] をクリックして、公開キーを自分のコンピューターに保存することもできます。You can also click Save public key to save a copy to your computer:

    PuTTY 公開キー ファイルの保存

  6. PuTTy の秘密キー形式 (.ppk ファイル) で秘密キーを保存する必要がある場合は、[Save private key](秘密キーを保存) をクリックします。Optionally, to save the private key in PuTTy private key format (.ppk file), click Save private key. 後で PuTTY を使って VM への SSH 接続を行うときに、.ppk ファイルが必要です。You need the .ppk file of you want to use PuTTY later to make an SSH connection to the VM.

    PuTTY 秘密キー ファイルを保存する

    多くの SSH クライアントによって使われる秘密キーの形式である OpenSSH 形式で秘密キーを保存する場合は、[Conversions](変換) > [Export OpenSSH key](OpenSSH キーのエクスポート) をクリックします。If you want to save the private key in the OpenSSH format, the private key format used by many SSH clients, click Conversions > Export OpenSSH key.

VM を展開するときに SSH 公開キーを提供するProvide SSH public key when deploying a VM

認証に SSH キーを使う Linux VM を作成するには、Azure Portal または他の方法を使って VM を作成するときに、SSH 公開キーを提供します。To create a Linux VM that uses SSH keys for authentication, provide your SSH public key when creating the VM using the Azure portal or other methods.

次の例は、Linux VM を作成するときにこの公開キーをコピーして Azure Portal に貼り付ける方法を示しています。The following example shows how you would copy and paste this public key into the Azure portal when you create a Linux VM. 通常、公開キーは新しい VM の ~/.ssh/authorized_keys に格納します。The public key is typically then stored in ~/.ssh/authorized_keys on your new VM.

Azure Portal で VM を作成する際の公開キーの使用

VM に接続するConnect to your VM

Windows から Linux VM に SSH 接続する方法の 1 つは、SSH クライアントを使うことです。One way to make an SSH connection to your Linux VM from Windows is to use an SSH client. Windows システムに SSH クライアントがインストールされている場合、または Azure Cloud Shell の Bash で SSH ツールを使っている場合は、これが推奨される方法です。This is the preferred method if you have an SSH client installed on your Windows system, or you use SSH tools in Bash in Azure Cloud Shell. GUI ベースのツールを使う場合は、PuTTY で接続することができます。If you prefer a GUI-based tool, you can connect with PuTTY.

SSH クライアントを使用するUse an SSH client

公開キーを 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 to your VM using the IP address or DNS name of your VM. 次のコマンドの azureusermyvm.westus.cloudapp.azure.com を、管理者のユーザー名と完全修飾ドメイン名 (または IP アドレス) に置き換えてください。Replace azureuser and myvm.westus.cloudapp.azure.com in the following command with the administrator user name and the fully qualified domain name (or IP address):

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

キー ペアを作成するときにパスフレーズを構成した場合は、ログイン プロセス中に入力を求められたら、そのパスフレーズを入力します。If you configured a passphrase when you created your key pair, enter the passphrase when prompted during the login process.

PuTTY を使用して接続するConnect with PuTTY

PuTTY のダウンロード パッケージをインストールし、前に PuTTY の秘密キー (*.ppk ファイル) を生成した場合は、PuTTY を使って Linux VM に接続することができます。If you installed the PuTTY download package and previously generated a PuTTY private key (.ppk file), you can connect to the Linux VM with PuTTY.

  1. PuTTY を起動します。Start PuTTy.

  2. Azure Portal で取得した VM のホスト名と IP アドレスを入力します。Fill in the host name or IP address of your VM from the Azure portal:

    新しい PuTTY 接続の開始

  3. [Open (開く)] を選択する前に、[Connection (接続)] > [SSH] > [Auth] タブをクリックします。PuTTY の秘密キー (.ppk ファイル) を参照して選択します。Before selecting Open, click Connection > SSH > Auth tab. Browse to and select your PuTTY private key (.ppk file):

    認証用の PuTTY 秘密キーを選択する

  4. [Open](開く) をクリックして、VM に接続します。Click Open to connect to your VM.

次の手順Next steps