SSHキーペアとは?

SSHキーペアは、ユーザーがパスワードなしでリモートサーバーに認証するために使用される2つの暗号化キーのセットです。このペアは、ユーザーのマシンに秘密に保管される秘密鍵と、リモートサーバーに配置される公開鍵で構成されます。接続時、サーバーはクライアントに秘密鍵の所有を証明するよう要求します。秘密鍵自体は決して送信されません。この非対称的なアプローチは、パスワードベースの認証よりも大幅に安全です。なぜなら、傍受またはブルートフォース攻撃を受ける可能性のある共有秘密がないからです。

SSHキーペアは公開鍵暗号アルゴリズムを使用して生成されます。最も広く使用されているのは、小さなキーサイズと高いセキュリティで知られた最新の楕円曲線アルゴリズムであるEd25519と、大きな整数の因数分解の困難さに依存する実績のあるアルゴリズムであるRSAです。Ed25519は優れたパフォーマンスとサイドチャネル攻撃への耐性により、新しいキーに推奨されます。

ツールの説明

SSH Key Pair Generatorは、Web Crypto APIを使用してブラウザ内で暗号化的に安全なEd25519またはRSA SSHキーペアを直接生成します。データはサーバーに送信されません。すべてのキーマテリアルはデバイス上でローカルに生成されます。オプションで、後でキーを識別するのに役立つコメント(通常はuser@hostname)を追加できます。生成された公開鍵と秘密鍵はクリップボードにコピーするか、ファイルとしてダウンロードでき、ssh-copy-idまたはSSHクライアントで使用する準備ができています。

Ed25519公開鍵

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

RSA公開鍵(4096ビット)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

秘密鍵(OpenSSH形式)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

機能

  • Ed25519およびRSAサポート: 最新の楕円曲線アルゴリズムまたはクラシックなRSAアルゴリズムから選択できます
  • RSAキーサイズオプション: 2048、3072、または4096ビットのRSAキーを選択して、セキュリティとパフォーマンスのバランスを取ります
  • オプションのコメントフィールド: user@hostnameスタイルのコメントを追加して、マシン間でキーを識別するのに役立ちます
  • クライアント側での生成: キーはWeb Crypto APIを使用してブラウザ内で完全に生成されます。何も送信または保存されません
  • ワンクリックダウンロード: 公開鍵と秘密鍵ファイルを正しいファイル名(id_ed25519id_ed25519.pubid_rsaid_rsa.pub)で直接保存できます

ユースケース

  • サーバーアクセスセットアップ: キーペアを1回生成し、公開鍵を~/.ssh/authorized_keys経由で任意の数のリモートLinux/Unixサーバーにデプロイして、パスワードなしのSSHログインを有効にします
  • Gitホスティング認証: 公開鍵をGitHub、GitLab、またはBitbucketに追加して、毎回認証情報を入力することなくgit pushおよびgit pull操作を認証します
  • CI/CDパイプライン: サーバーまたはプライベートリポジトリへのSSHアクセスが必要な自動スクリプトまたはビルドエージェント用に、専用のデプロイメントキーペアを作成します

仕組み

キー生成はブラウザの組み込みcrypto.subtle API(Web Crypto)を使用します。Ed25519の場合、生の32バイト秘密スカラーと32バイト公開鍵はOpenSSHワイヤー形式(openssh-key-v1)にパックされます。RSAの場合、キーはPKCS#8 DER形式でエクスポートされ、標準的なPEMエンベロープでラップされます。公開鍵blobはSSHワイヤー形式(長さプレフィックス付きアルゴリズム名の後にキーマテリアル)でエンコードされ、Base64エンコードされて、OpenSSHのauthorized_keysファイルで予想される形式と一致します。

ヒント

  • ダウンロード後、秘密鍵ファイルに正しいパーミッションを設定します:chmod 600 ~/.ssh/id_ed25519。SSHは他のユーザーが読み取り可能な秘密鍵の使用を拒否します。
  • 古いシステムとの互換性が必要な場合を除き、Ed25519を使用してください。より短いキーを生成し、RSAより高速です。
  • コメントフィールドはキーの暗号化強度に影響しません。これは純粋に人間による識別用であり、後でssh-keygen -cで変更できます。
  • レガシーサーバーとの最大RSA互換性のために、4096ビットキーを使用してください。最新のサーバーの場合、RSAキーサイズに関係なくEd25519が推奨されます。