Azure に Linux VM 用の SSH 公開キーと秘密キーのペアを作成して使用する方法

Secure Shell (SSH) キー ペアを使用すると、認証に SSH キーを使う仮想マシン (VM) を Azure に作成でき、ログインするためのパスワードが不要になります。 この記事では、Linux VM 用に SSH プロトコル バージョン 2 RSA の公開キー ファイルと秘密キー ファイルのペアを短時間で生成し、使用する方法について説明します。 証明書を生成する詳細な手順と、クラシック ポータルで使用する証明書などの例については、SSH キー ペアと証明書を作成するための詳細な手順に関するページをご覧ください。

SSH キー ペアの作成

ssh-keygen コマンドを使用して、SSH 公開キー ファイルと秘密キー ファイルを作成できます。ファイルは既定で ~/.ssh ディレクトリに作成されますが、プロンプトが表示されたときに別の場所や追加のパスフレーズ (秘密キー ファイルにアクセスするためのパスワード) を指定できます。 これを行うには、Bash シェルから次のコマンドを実行し、使用したい情報をプロンプトで指定します。

ssh-keygen -t rsa -b 2048 

SSH キー ペアの使用

Azure の Linux VM に配置した公開キーは、既定で ~/.ssh/id_rsa.pub に格納されますが、VM の作成時にこの場所を変更することができます。 Azure CLI 2.0 を使用して VM を作成する場合は、az vm create を実行する際に --ssh-key-path オプションを使って、この公開キーの場所を指定します。 公開キー ファイルの内容をコピーし、Azure Portal または Resource Manager テンプレートに貼り付けて使用する場合は、余分な空白スペースをコピーしないように注意してください。 たとえば、OS X を使用している場合は、公開キー ファイル (既定では ~/.ssh/id_rsa.pub) を pbcopy にパイプして、内容をコピーできます (xclip など、同じ目的を達成できる Linux プログラムが他にもあります)。

SSH 公開キーがわからない場合は、次のように cat を実行して公開キーを表示できます。~/.ssh/id_rsa.pub の部分は実際の公開キー ファイルの場所に置き換えてください。

cat ~/.ssh/id_rsa.pub

公開キーを Azure VM に配置できたら、VM の IP アドレスまたは DNS 名を使用して SSH で VM に接続します (下記の azureusermyvm.westus.cloudapp.azure.com は、管理者のユーザー名と、完全修飾ドメイン名または IP アドレスに置き換えてください)。

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

キー ペアを作成する際にパスフレーズを指定した場合は、ログイン プロセス中に入力を求められたら、そのパスフレーズを入力します (サーバーは ~/.ssh/known_hosts フォルダーに追加されます。Azure VM にある公開キーが変更されるかサーバー名が ~/.ssh/known_hosts から削除されるまで、再度接続を求められることはありません)。

次のステップ

SSH キーを使用して作成された VM は、既定ではパスワードが無効にされます。この措置により、推測によるブルート フォース攻撃はコストが非常に高くつき、実行するのが難しくなります。 このトピックでは、すぐに使えるように単純な SSH キー ペアを作成する方法について説明しました。 SSH キー ペアの作成に関する詳しい説明や、クラシック ポータルで使用する証明書については、SSH キー ペアと証明書を作成するための詳細な手順に関するページをご覧ください。

SSH キー ペアを使用する VM の作成には、Azure Portal、CLI、およびテンプレートを使用できます。