全く覚えられないので最低限の情報を殴り書きしておく
キーのリストの確認
$ gpg --list-keys
/home/k0kubun/.gnupg/pubring.gpg
--------------------------------
pub 4096R/12EE23DD 2017-05-15
uid Takashi Kokubun <xxx@gmail.com>
sub 4096R/4AA0B869 2017-05-15
pubがコード署名に使われ、subが暗号化などの用途に使われるらしい。
別のバージョンだと以下のような出力になる
$ gpg --list-keys
/home/k0kubun/.gnupg/pubring.kbx
--------------------------------
pub rsa4096 2017-05-15 [SC]
149033D7861A9117B2D34B8D6FFC433B12EE23DD
uid [ultimate] Takashi Kokubun <takashikkbn@gmail.com>
sub rsa4096 2017-05-15 [E]
public key の export
$ gpg --armor --export [email]
secret key ring file
gradleのsigning pluginとかで使うsigning.secretKeyRingFile
は/home/k0kubun/.gnupg/secring.gpg
みたいなパスにある。
上記の出力の場合signing.keyId
は12EE23DD
を使えばよい
keyserverへのキーの送信
やっておかないとgradleでは使えなかったりする。 http://keyserver.ubuntu.com:11371 に送信するには以下のようにする。
$ gpg --keyserver keyserver.ubuntu.com --send-key 12EE23DD
gpg: sending key 12EE23DD to hkp server keyserver.ubuntu.com
gitconfigの設定
[user]
signingkey = 149033D7861A9117B2D34B8D6FFC433B12EE23DD
gpg --list-keys
でpubに出てくる奴を設定する。git commit -S
すると使われる。
gpg-agentの設定
~/.gnupg/gpg-agent.conf
に以下のファイルを作る。TTL 8時間の例。
use-standard-socket
default-cache-ttl 28800
max-cache-ttl 28800
この設定は gpg-connect-agent reloadagent /bye
でreloadできるらしい
gpg-agentの起動
Linux
$ sudo apt-get install gnupg-agent
以下のような ~/.config/systemd/user/gpg-agent.service
を作る
[Unit]
Description=GnuPG agent
[Service]
Type=simple
ExecStart=/usr/bin/gpg-agent
[Install]
WantedBy=default.target
その後、
$ systemctl --user start gpg-agent
$ systemctl --user enable gpg-agent
macOS
$ brew install gnupg
TODO