アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

GPG備忘録

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)