Linux gpg コマンド

Linux コマンド大全


GPG(GNU Privacy Guard)は、GNU プロジェクトによって開発された OpenPGP 標準の実装ツールであり、データの暗号化・復号化、およびデジタル署名の作成と検証に使用されます。これは PGP(Pretty Good Privacy)のオープンソース代替品であり、ファイル暗号化、電子メールのセキュリティ保護、ソフトウェアパッケージの署名検証などの場面で広く利用されています。


基本的な構文構造

gpg コマンドの基本構文は次のとおりです:

gpg [选项] [命令] [文件名]

主な構成要素:

  • オプション:GPG の動作を制御するさまざまなパラメータ
  • コマンド:実行する操作の種類を指定します
  • ファイル名:処理対象のファイル(省略可能)

よく使うコマンドパラメータ

鍵管理

パラメータ 説明
--gen-key 新しい鍵ペアを生成
--list-keys すべての公開鍵を一覧表示
--list-secret-keys すべての秘密鍵を一覧表示
--delete-key 公開鍵を削除
--delete-secret-key 秘密鍵を削除
--import 鍵をインポート
--export 鍵をエクスポート

暗号化/復号化操作

パラメータ 説明
--encrypt (-e) ファイルを暗号化
--decrypt (-d) ファイルを復号化
--sign (-s) 署名を作成
--verify 署名を検証
--armor (-a) ASCII 形式の出力を生成

その他の一般的なオプション

パラメータ 説明
--recipient (-r) 受信者の鍵を指定
--output (-o) 出力ファイルを指定
--passphrase パスフレーズを指定

実際の応用例

1. 鍵ペアの生成

gpg --gen-key

実行後、対話形式で次のように尋ねられます:

  1. 鍵の種類(通常はデフォルトの RSA と RSA を選択)
  2. 鍵の長さ(4096 ビットを推奨)
  3. 鍵の有効期限
  4. ユーザー識別情報(名前とメールアドレス)
  5. パスフレーズ

2. ファイルの暗号化

gpg --encrypt --recipient alice@example.com --output secret.txt.gpg secret.txt
  • --recipient受信者の公開鍵を指定(メールアドレスで識別)
  • --output暗号化後の出力ファイルを指定
  • 最後のパラメータは暗号化する元のファイルです

3. ファイルの復号化

gpg --decrypt --output plain.txt secret.txt.gpg

システムは秘密鍵のパスフレーズの入力を求めます

4. 署名の作成と検証

署名の作成:

gpg --sign --output document.sig document.txt

署名の検証:

gpg --verify document.sig document.txt

5. 公開鍵のエクスポート

gpg --armor --export alice@example.com > alice.pub.asc

--armorオプションで ASCII 形式の公開鍵ファイルを生成します


鍵管理の実践

キーリング操作の流れ

鍵の信頼関係の設定

  1. 他人の公開鍵をインポート:

    gpg --import bob.pub.asc
  2. 鍵のフィンガープリントを検証:

    gpg --fingerprint bob@example.com
  3. 鍵に署名して信頼関係を構築:

    gpg --sign-key bob@example.com

よくある質問と回答

1. 復号化のたびにパスワードを入力しなくて済むようにするには?

gpg-agent を使用してパスワードをキャッシュ:

gpg --use-agent --decrypt file.gpg

2. 紛失した鍵を失効させるには?

  1. 失効証明書を生成:

    gpg --gen-revoke your@email.com > revoke.asc
  2. 失効証明書を公開:

    gpg --import revoke.asc

3. 大きなファイルを暗号化する際のベストプラクティスは?

対称暗号化と非対称暗号化を組み合わせて使用:

gpg --symmetric --cipher-algo AES256 largefile.iso

セキュリティ上の注意事項

  1. 秘密鍵の保護:秘密鍵ファイルは適切に保管し、強力なパスフレーズを使用することを推奨します
  2. 鍵のバックアップ:キーリングと失効証明書を定期的にバックアップします
  3. アルゴリズムの選択:AES-256 や RSA-4096 などの強力な暗号化アルゴリズムを推奨します
  4. 鍵の有効期限:適切な鍵の有効期限を設定し、定期的に更新します
  5. メタデータの漏洩:暗号化時にファイル名などのメタデータを保持しないようにするには、次のオプションを使用できます--throw-keyidsオプション

gpg コマンドを習得することで、機密データの安全性を効果的に保護し、安全なファイル転送と本人確認を実現できます。実際に使用する前に、テスト環境で各操作に慣れておくことをお勧めします。


Linux コマンド大全

その他の拡張