Windows 10とWindows 11でSSHキーを生成する方法

  • コマンドプロンプト、PowerShell、またはWindowsターミナルを使用してWindows 10または11でSSHキーを生成し、「ssh-keygen」と入力してからパスフレーズを入力します。デフォルトの保存場所はC:\Usersフォルダーです。
  • コマンドライン、Windows Subsystem for Linux (WSL)の使用、またはPuTTYを使用して、2つの方法でSSHキーをすばやく生成できます。各方法にはそれぞれの手順と考慮事項があります。
  • さまざまなサイトに対して複数のSSHキーを作成することは簡単です。生成プロセス中に各キーに異なる名前を付けるだけです。これらのキーを適切に管理して転送して、サーバーやアカウントへのアクセスを失うのを防ぎます。

自分でホストしているブログ、Nextcloudのインストール、GitHubへの最新の変更を送信するなど、リモートサーバーにログインすることが多い場合は、SSHキーが必要です。Windows 10と11では、新しいキーを生成する方法が数多く用意されています。

3つの異なる方法を使用して、必要なすべてのSSHキーを作成する方法を紹介します。最初のキーセットの生成方法と、複数のサイトに対して異なるキーを作成する場合の追加のキーの生成方法を示します。

オプション1:コマンドラインでキーを生成する

Windows 10には、2018年4月のアップデート以降、組み込みのOpenSSHクライアントが搭載されています。Windows 11にもこの機能が組み込まれています。

これを使用するには、Windowsキーを押して「cmd」と入力してWindowsコマンドプロンプトを開きます。

コマンドラインをよく使用する場合は、WindowsストアからWindowsターミナルをインストールすることを強くお勧めします(Windows 11にデフォルトでインストールされています)。これは、コマンドプロンプト、PowerShell、Windows Subsystem for Linuxを1つのウィンドウで実行できるタブ付きプログラムです。背景画像を設定するなどの楽しい機能もあります。

コマンドプロンプトまたはWindowsターミナルを使用している場合は、ssh-keygenと入力してEnterキーを押します。これにより、SSHキーが自動的に生成されます。Windows 11でのテストでは、2048ビットのRSAキーが作成されました。異なるアルゴリズムを使用したい場合(たとえば、GitHubはEd25519を推奨しています)、ssh-keygen -t ed25519と入力します。

コマンドプロンプトに「ssh-keygen」と入力してEnterキーを押すことから始めます。

コマンドを入力してEnterキーを押すと、キーの名前を指定し、特定の場所に保存するように求められます。デフォルトを使用すると、ユーザーアカウントが保存されているCドライブであることを前提に、C:\User[YourUserName].sshにキーが保存されます。

ほとんどの人は、SSHキーをデフォルトの場所に保存する必要があります。

次に、パスフレーズを入力するように求められます。キーの安全を保つために、これを行うことを強くお勧めします。パスワードを忘れるのが心配な場合は、最高のパスワードマネージャーをまとめた記事をご覧ください。パスフレーズが本当に不要な場合は、Enterキーを押すだけです。

パスワードの入力はオプションですが、これを行うことを強くお勧めします。

これで、キーが作成、保存され、使用できるようになりました。".ssh"フォルダーに、ファイル拡張子なしの"id_rsa"と"id_rsa.pub"という2つのファイルがあることがわかります。後者は、サーバーにアップロードして認証するキーであり、前者は他の人と共有しない秘密鍵です。

Windows 11のSSHキーが作成されました。

ファイルエクスプローラーに".ssh"フォルダーが表示されない場合は、Windowsで隠しファイルとフォルダーを表示する方法に関するチュートリアルをご覧ください。

さまざまなサイトに対して複数のキーを作成したい場合も、簡単です。たとえば、Digital Oceanにあるサーバー用に生成したデフォルトのキーを使用し、GitHub用の別のキーセットを作成したいとします。上記と同じプロセスに従いますが、キーを保存する際に、「id_rsa_github」などの異なる名前を付けるだけです。これは何度でも実行できます。ただし、キーが増えるほど、管理するキーが増えることに注意してください。新しいPCにアップグレードする場合は、これらのキーを他のファイルと一緒に移動する必要があります。そうしないと、少なくとも一時的にサーバーやアカウントへのアクセスが失われる可能性があります。

オプション2:WSLでキーを生成する

Linuxメソッドは、Windowsコマンドプロンプトメソッドとほぼ同じです。

WSLユーザーであれば、WSLインストールで同様の方法を使用できます。実際、コマンドプロンプトバージョンと基本的に同じです。なぜこれをしたいのか?主にコマンドラインの作業のためにLinuxを使用している場合は、WSLにキーを保存しておくのが理にかなっています。

Windowsターミナルまたは組み込みのUbuntuコマンドプロンプト(Ubuntu Linuxをインストールしていることを前提として)を開きます。その後、Windowsと非常によく似ています。Windowsとは異なり、RSAキーが必要なのか、Ed25519のようなものが必要なのかを指定するのが最善です。

RSA-4096キーを作成したいとします。次のコマンドを入力します。

ssh-keygen -t rsa -b 4096

Ed25519が必要な場合は、推奨される方法は次のとおりです。

ssh-keygen -t ed25519 -C "[email protected]"

Microsoftのバージョンでは自動的にユーザー名とPCの名前がこれに使用されるため、Windowsではこれを行う必要はありませんが、識別子としてメールアドレスを追加することをお勧めします。

繰り返しますが、さまざまなサイトに対して複数のキーを生成するには、ファイル名の末尾に「_github」のようなものをタグ付けするだけです。

オプション3:PuTTYでキーを生成する

長年、昔ながらのPuTTYプログラムは、Windowsでサーバーと通信するための一般的な方法でした。このプログラムがシステムにすでにある場合は、SSHキーを作成する方法も提供されます。

PuTTYにはいくつかのヘルパープログラムが付属しており、その1つがPuTTYキージェネレーターです。それを開くには、Windowsキーを押して「puttygen」と入力するか、スタートメニューで検索します。

開いたら、ウィンドウの下部に生成するさまざまな種類のキーが表示されます。どれを使用するかよくわからない場合は、「RSA」を選択し、「生成されるキーのビット数」と表示されているエントリボックスに「4096」と入力します。もう1つの方法は、「EdDSA」を選択し、その下に表示されるドロップダウンメニューから「Ed25519(255ビット)」が選択されていることを確認します。

これで、「生成」をクリックするだけで、PuTTYが動作を開始します。システムの強度によってはそれほど時間はかかりません。PuTTYは、キーの生成中に少しランダム性を高めるために、ウィンドウ内でマウスを動かすように求めます。

それが完了したら、「公開キーを保存」をクリックして公開キーを保存し、前の手順でRSAまたはEd25519を選択したかどうかに応じて、「id_rsa.pub」または「id_ed25519.pub」という名前で保存します。

その後、秘密鍵を取得するには、追加の手順が必要です。デフォルトでは、PuTTYはPuTTYクライアントで使用するためのPPKキーを生成します。ただし、OpenSSHが必要な場合は、ウィンドウの上部で変換> OpenSSHキーのエクスポートを選択し、ファイルを「id_rsa」または「id_ed25519」としてファイルの末尾なしで保存します。

どの方法を選択しても、SSHキーの生成は本当に簡単です。PuTTYがすでにインストールされている場合、またはLinuxを好んでそのシステムを理解している場合を除き、Windowsコマンドプロンプトオプションを使用することをお勧めします。