Category: GPG

macでGPGを使う

GPGのインストール

Homebrewを使ってGPGをインストールします。

brew install gnupg

GPGキーの作成

暗号化に使うためのGPGキーを作成していない場合は、以下のコマンドで新しいキーを作成します。

gpg --full-generate-key
  1. 暗号化タイプの選択 (RSAやECDSAなどを選択。基本的にはデフォルトでOK)

  2. キーの長さを指定 (通常は2048や4096を推奨)

  3. 有効期限を設定 (必要に応じて設定、無期限なら「0」を入力)

  4. 名前、メールアドレス、コメントを入力 (特に決まっていない場合は自分の情報を入力)

  5. パスフレーズの設定 (重要です。キーを守るための強力なパスフレーズを入力)

ファイルを暗号化する手順

暗号化したいファイル(例えば secret.txt)を用意します。 次のコマンドを使って、そのファイルをGPGで暗号化します。

gpg --output secret.txt.gpg --encrypt --recipient "あなたのメールアドレス" secret.txt
  • –output secret.txt.gpg: 出力する暗号化されたファイル名を指定。
  • –encrypt: ファイルを暗号化するオプション。
  • –recipient “あなたのメールアドレス”: 暗号化を解除できるユーザー(自分のメールアドレス)を指定。

暗号化されたファイルの復号

復号する際は、次のコマンドを使います。

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

これにより、暗号化された secret.txt.gpg ファイルを復号して元の secret.txt に戻すことができます。

メモ

  • もし複数の公開鍵がある場合、適切な公開鍵が自分のものか確認し、–recipient オプションに正しい鍵(自分のもの)を指定してください。
  • 暗号化後は、元のファイル(平文の secret.txt)を削除して、セキュリティを高めることをお勧めします。

AWSの認証情報を保存したい(docker-credential-passがgnupgを使っている)

mac OSでDockerを使う場合、通常は docker-credential-osxkeychain に認証情報が保存される が、dockerコンテナ内で作業している場合は、コンテナの外にある docker-credential-osxkeychain は使えない(使用しているライブラリもコンテナとホストOSで違うので、そのままでは動作しないだろう) 私は作業用コンテナにUbuntuのイメージを使っている。この場合、下記の選択肢が取れそう、passの方が一般的のようだったのでこちらを導入した(内部的にgnupgを利用する)

  • docker-credential-pass
  • docker-credential-secretservice(GNOME Keyring を利用)

コンテナ内でもawsの認証情報を使えるようにするための設定をまとめた

1. 必須パッケージをインストール

apt-get update
apt-get install -y gnupg gpg-agent pass pinentry-curses dirmngr

2. GnuPG の準備

# GnuPGホームディレクトリ作成
mkdir -p ~/.gnupg
chmod 700 ~/.gnupg

/run/user配下にディレクトリを作成する権限が無い場合、rootが作成し、所有者情報、権限をユーザに合わせる必要がある

Read more...