PPK ファイル形式とは?
.ppk ファイルは PuTTY Private Key ファイルです。PuTTY 独自の形式のテキストベースの SSH 秘密鍵コンテナであり、PuTTYgen キー生成ツールによって作成され、PuTTY、WinSCP、FileZilla、および互換性のある SSH クライアントで使用されます。
このファイルは、構造化された複数行のテキストレイアウトで SSH キーペア(公開鍵と秘密鍵の両方のコンポーネント)を保存します。最初の行で形式のバージョンとキーアルゴリズムを識別します。例:
PuTTY-User-Key-File-3: ssh-ed25519
これに続いて、暗号化タイプとコメントのヘッダーフィールド、次に公開鍵、オプションで暗号化された秘密鍵、および整合性検証用の MAC の Base64 エンコードされたブロックが続きます。
3つの形式バージョンが存在します:
- PPK v1 - 廃止されたレガシー形式
- PPK v2 - 0.75 より前の PuTTY で使用。パスフレーズ保護には SHA-1 ベースの KDF と AES-256-CBC を使用し、整合性は HMAC-SHA-1 で検証されます
- PPK v3 - PuTTY 0.75(2021年1月)で導入。SHA-1 KDF を Argon2id に置き換え、パスフレーズのブルートフォースを大幅に困難にしました。HMAC-SHA-256 を使用します
PuTTYgen は、v2 キーをその場で v3 にアップグレードできます。標準の OpenSSH ツール(ssh、scp、sftp)で .ppk キーを使用するには、まず PuTTYgen を介して PEM または OpenSSH の新しい形式にエクスポートする必要があります。これら2つの形式に直接の互換性はありません。
PPK ファイルは、キーアルゴリズム(RSA、DSA、ECDSA、Ed25519)に関係なく、通常 1-4 KB です。
セキュリティと安全性
リスク: HIGHPPK ファイルには秘密鍵の素材が含まれています。これは、対応する公開鍵が許可されているすべてのサーバーに対するパスワードと同等です。パスフレーズのない PPK が攻撃者に渡ると、即座に SSH アクセスを許してしまいます。常に強力なパスフレーズで保護してください。より強力な Argon2id パスフレーズ保護のために、PPK v3 形式(PuTTY 0.75以降)を使用してください。暗号化されていない PPK ファイルを共有ドライブに保存したり、ソースコードリポジトリに含めたりしないでください。オンラインで PPK ファイルを «開く» または «表示» することを提案するサイトは危険です。秘密鍵をサードパーティの Web サイトにアップロードすることは、パスワードを譲り渡すことと同じです。
形式の詳細
概要PPK ファイルを開くプログラム
brew install putty → puttygen key.ppk -O private-openssh -o ~/.ssh/id_rsa を実行して、ssh で使用するために変換します。 puttygen key.ppk -O private-openssh -o key.pem - ssh/scp/sftp で使用するために OpenSSH PEM 形式に変換します。 技術的詳細
詳細仕様| エンコーディング | テキスト(ASCII/UTF-8 ヘッダー、内部に Base64 エンコードされたバイナリキーデータ) |
| ファイルシグネチャ | 最初の行は文字通り «PuTTY-User-Key-File-N: algorithm» (N = 2 または 3)。バージョンとキーアルゴリズムを識別 |
| 形式バージョン | v1 (廃止); v2 (PuTTY <0.75, HMAC-SHA-1, SHA-1ベースの KDF); v3 (PuTTY 0.75+, Argon2id KDF, HMAC-SHA-256) |
| キーアルゴリズム | ssh-rsa, ssh-dss (DSA), ecdsa-sha2-nistp256/384/521, ssh-ed25519, ssh-ed448 |
| パスフレーズ暗号化 | AES-256-CBC; v2 は SHA-1 ベースの KDF を使用; v3 は Argon2id (メモリハード KDF) を使用 - ブルートフォースに対して大幅に強化 |
| 整合性チェック | 公開鍵、秘密鍵、アルゴリズム名、およびコメントに対して計算された HMAC-SHA-1 (v2) または HMAC-SHA-256 (v3) |
| 構造 | 複数行のキー/値ヘッダー + Base64 ブロック:公開鍵行、秘密鍵行、Private-MAC。v3 では暗号化時に Argon2 KDF パラメータ行が追加される |
| 典型的なサイズ | キーアルゴリズムに関係なく 1 KB - 4 KB |
| 相互運用性 | OpenSSH ツールで直接使用することはできません。PuTTYgen を介して PEM または OpenSSH の新しい形式にエクスポートする必要があります |
| 内容 | 単一のファイル内に公開鍵と秘密鍵の両方のコンポーネントが含まれる |
| セキュリティ上の注意 | SHA-1 HMAC を使用する PPK v2 は脆弱であると見なされます。まだ v2 形式のキーについては、PuTTYgen を介して v3 にアップグレードすることをお勧めします |
| リリース日 | Early 2000s (PuTTY 0.4x era); PPK v3 introduced with PuTTY 0.75 (2021) |
| 最新バージョン | PPK version 3 (PuTTY 0.75+, 2021) |
| 仕様書 | tartarus.org |
PPK の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PPK ファイルについて最初の質問をしてみましょう。
よくある質問
Linux/macOS 用に PPK ファイルを PEM に変換するにはどうすればよいですか?
brew install putty (macOS) または apt install putty-tools (Linux)。その後、次のコマンドを実行します:puttygen key.ppk -O private-openssh -o key.pemWindows で PPK ファイルを開くにはどうすればよいですか?
PPK v2 と PPK v3 の違いは何ですか?
PPK ファイルを OpenSSH で直接使用できますか?
puttygen で変換してください。OpenSSH はネイティブでは PPK 形式を読み取れません。PPK ファイルがパスフレーズを要求しますが、忘れてしまいました。
authorized_keys を更新することです。