2026-03-09 SSH vs GPG
SSH と GPG の違いについて
Gemini に聞いてまとめてもらった。
| 項目 | SSH (Secure Shell) | GPG (GNU Privacy Guard) |
|---|---|---|
| 主な目的 | 通信経路の暗号化・認証 | データ自体の暗号化・署名 |
| 主な用途 | サーバーへのリモートログイン、ファイル転送 | メールの暗号化、ファイルの保護、電子署名 |
| 通信の状態 | リアルタイム(接続している間だけ有効) | 非同期(保存されたファイルなどに有効) |
| 信頼モデル | サーバーのホスト鍵を確認(TOFU方式) | Web of Trust(信頼の輪)や直接確認 |
| 規格 | SSH2 プロトコル | OpenPGP 規格 |
SSH で署名可能
ちなみに2021年11月に Git 2.34 において署名フォーマットとして GPG だけでなく SSH を指定できる機能(gpg.format = ssh)が追加された。
SSH鍵の方が扱いが慣れているし、楽なのは間違いない。
| 方式 | 立ち位置 |
|---|---|
| SSH | 現在の推奨(ベストプラクティス)。設定が最も簡単で、ほとんどの人に最適。 |
| GPG | 伝統的な方式。古いシステムとの互換性や、Web of Trust を利用したい場合に。 |
| S/MIME | 企業の証明書発行機関(CA)を利用する場合など、組織的な管理が必要な場合に。 |
ちなみに Authentication Key, Signing Key を同じものを使うことも可能なようだが、セキュリティの観点で別の鍵を用意したほうが安全だろう。