WindowsでSSHキーを生成する方法:2つの方法

概要

  • コマンドプロンプトまたはWSLを使用してWindowsでSSHキーを生成します。Windows 11のOpenSSHクライアントは簡単で安全ですが、Windows 10ではオプションの機能を有効にする必要があります。
  • コマンドプロンプトまたはWSLで「ssh-keygen」または「ssh-keygen -t ed25519」を実行し、保存場所とパスフレーズ(オプション)を入力してキーを生成します。

SSH(セキュアシェル)キーは、ファイル転送の保護、ネットワークの接続、AWSなどのほとんどの大規模クラウドサービスの管理のためにSSHプロトコルで使用される認証資格情報です。Windowsでパスワードのように生成して、暗号化された接続を作成できます。方法は次のとおりです。

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

セキュアシェルプロトコル(SSH)は、Webを介してコンピュータ間の安全でない接続をロックダウンする最良の方法です。プロトコルをユーザー名とパスワードで使用することは避け、代わりに暗号的に生成されたSSHキーを使用する必要があります。

Windows 11には、OpenSSHクライアントが組み込まれています。これにより、サードパーティのプログラムを使用せずにSSHキーを簡単に生成できます。Windows 10でも同じように機能するはずです。問題がある場合は、Windowsのオプション機能パネルを開き、OpenSSHクライアントオプションを有効にします。

WindowsでSSHキーを生成するには、コマンドプロンプトWSL(Windows Subsystem for Linux)の2つの方法があります。最初の方法から始めましょう。

コマンドラインインターフェイスの統一された環境を提供するため、Windowsターミナルを好む場合があります。コマンドプロンプト、PowerShell、Windows Subsystem for Linuxを単一ウィンドウ内で実行します。このツールは汎用性を高め、SSHキーの生成などのタスクを簡素化します。

1. コマンドプロンプトを使用してSSHキーを生成する

コマンドプロンプトを使用してWindowsでSSHキーを生成するには、次の手順に従います。

  1. コマンドプロンプトを管理者として実行します。
  2. コマンドプロンプトで、次のように入力してEnterキーを押します。
    ssh-keygen
  3. キーを保存するファイルの場所を入力するように求められます。
  4. Enterキーを押して、デフォルトの場所にキーを保存します(通常はC:\Users\your_username/.ssh/id_rsa)。必要に応じて別の場所を指定することもできます。
  5. キーのパスフレーズを入力するように求められます。これはオプションの手順ですが、パスフレーズはSSHキーにセキュリティのレイヤーを追加し、保護します。パスフレーズを必要としない場合は、Enterキーを押します。
  6. パスフレーズを再入力(選択した場合)して、Enterキーを押します。パスフレーズを入力しなかった場合は、もう一度Enterキーを押します。

これで、システムがSSHキーを生成し、フィンガープリントとキーの場所が表示されます。保存された場所にあるキーペアを表示することもできます。

RSAキーに加えて、Ed25519キーを生成することもできます。このプロセスは非常に似ており、コマンドラインを少し変更するだけです。ssh-keygenで実行する代わりに、次のコマンドを実行します。

ssh-keygen -t ed25519

残りの手順は、RSAキーを生成する場合と同じです。ファイルの場所を入力し、パスフレーズを設定する必要があります(必要な場合)。システムは、フィンガープリントと場所を使用してキーを生成します。

受信するキーフィンガープリントは、SSHキーの識別子です。リモートサーバーに接続するときに、これを利用して信頼性を確認できます。SSHキーを生成すると、プライベートキーとパブリックキーの2つのキーが生成されます。これらの2つのキーは、拡張子によって区別できます。プライベートキーには拡張子がなく、パブリックキーは.pub拡張子で終わります。

プライベートキーは暗号化と復号化に使用され、秘密にしておく必要があります。一方、パブリックキーは暗号化にのみ使用され、他の人と共有してもプライベートキーのプライバシーは損なわれません。

2. WSLを使用してSSHキーを生成する

SSHキーを生成する2番目の方法は、Windows Subsystem for Linux(WSL)を使用することです。しかし、すでにWindowsコマンドプロンプトがあるのに、なぜWSLを選ぶのでしょうか?

WSLは、Windows内に完全なLinux環境を提供し、別のOSをインストールせずにLinuxコマンドを実行できます。これは、WindowsとLinuxの両方で作業する開発者やシステム管理者に役立ちます。

これに関して問題がある場合は、WindowsでWSLを有効にするためのガイドを参照してください。

開始するには、次の手順に従います。

  1. WSLターミナルを起動します。
  2. RSA-4096キーを生成するには、次のコマンドを入力してEnterキーを押します。
    ssh-keygen -t rsa -b 4096
  3. Ed25519キーを生成するには、コマンドを次のように変更します。
    ssh-keygen -t ed25519
  4. コマンドの最後に自分のメールアドレスを追加することもできます。これは、複数のサイト用に複数のキーを作成する場合に、どのキーがどのアカウントに属しているかを簡単に識別できるコメントのようなものです。たとえば、ssh-keygen -t rsa -b 4096 -C "[email protected]"
  5. キーの場所を選択するか、Enterキーを押してデフォルトの場所を使用します。
  6. ターミナルはパスワードを選択するように求めてきます。これはオプションなので、必要に応じて空白のままにしておくことができます。Enterキーを押して続行します。

最後に、新しく生成されたSSHキーの場所とフィンガープリントを含むメッセージが表示されます。これで、このキーを使用して、コンピュータとリモートサーバー間の接続を保護できます。

RSAキーとEd25519キーの違いは何ですか?

上記の手順では、RSAとEd25519という2つのSSHキータイプについて説明しました。しかし、それらはどのように異なるのでしょうか?

  1. アルゴリズム:RSA(Rivest-Shamir-Adleman)は非対称暗号化を使用し、Ed25519は楕円曲線と非対称暗号化の両方を使用します。
  2. キーサイズ:RSAキーは1024ビットから4096ビットまでの可変キーサイズを持ちます。Ed25519は256ビットの固定キーサイズを持ち、RSAよりも高速です。
  3. セキュリティ:Ed25519は、一般に、攻撃に対してより安全で耐性があるとみなされています。
  4. パフォーマンス:Ed25519はRSAよりも高速で効率的です。
  5. 互換性:RSAはより広くサポートされていますが、Ed25519の採用は増えています。

最終的には、システムに応じてどちらの暗号化アルゴリズムを使用することもできます。SSHキーの生成は、Windowsで利用可能な方法を使用すれば簡単であり、リモートシステムにアクセスする際にオンラインで重大なリスクがあるため、検討する必要があります。