GPGのコマンド
キーの一覧を確認する
gpg --list-secret-keys --keyid-format LONG
出力の意味
sec -> Secret key ssb -> Secret SubKey pub -> Public Key sub -> public Subkey
キーを削除する
gpg --delete-secret-keys $KEYID
サブキーだけ削除する
gpg --edit-key $MASTER_KEYID key 2
キーのIndexを選択するとアスタリスクが付く
sub* rsa3072/AAAAAAAAAAAAAAAA
delkey save
キーをエクスポート/インポートする
- 全て
gpg --list-secret-keys --keyid-format LONG
sec rsa3072/AAAAAAAAAAAAAAAA 2022-05-18 [SC] [expires: 2024-05-17] HOGEHOGEHOGEHOGEHOGEHOGEHOGEHOGEHOGEHOGE uid [ultimate] matsudamper <example@example.com> ssb rsa3072/BBBBBBBBBBBBBBB 2022-05-18 [E] [expires: 2024-05-17] ssb rsa3072/CCCCCCCCCCCCCCC 2022-06-07 [S] [expires: 2025-06-06]
- 公開鍵をexportする
-a
はアスキーで取り出す。
gpg --export -a $KEYID> pub.pem
サブキーも全て含めてexportする。
gpg -a --output private.pem --export-secret-keys $KEYID
特定のサブキーをexportする。感嘆符が末尾に必要。
gpg -a --output private.pem --export-secret-subkeys ${KEYID}!
- キーをimportする
gpg --import key.pem
Yubikey
パスワード変更
編集モードに入る
gpg --card-edit
パスワードを編集する。
どれを編集するか尋ねられる。
admin passwd
1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit
- ユーザー: 123456
- 管理者: 12345678
鍵を転送する
gpg --edit-key $KEYID key $INDEX keytocard
>
と表示される。
gpg --list-secret-keys --keyid-format LONG sec# rsa3072 ssb> ssb#
別のPCで使用する
https://github.com/drduh/YubiKey-Guide#switching-between-two-or-more-yubikeys
公開鍵をimportして以下を実行。
gpg-connect-agent "scd serialno" "learn --force" /bye
Gitの設定
GPG用のプログラムを設定する。
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
現在の署名に使うキーを確認する。
git config --get user.signingkey
署名に使用するキーを設定する。
git config --global user.signingkey $KEYID
署名を必須化
git config --global commit.gpgsign true
WSLの設定
https://github.com/microsoft/WSL/issues/4029
.bashrc
export GPG_TTY=$(tty)