#30-01 [Ubuntu]Ubuntu ServerでPGP署名をする
概要: パッケージ作成のときに署名を何度もするのが面倒なので自動化したい。
備忘録としての署名の作成、あとはパスフレーズを自動入力するための設定とか。
* インストール
自動化のために gpg-agent を使いたいので、gnupg ではなく gnupg2 を入れる。
なぜか gnupg-agent の Depends の順番が pinentry-gtk2 | pinentry-curses | pinentry なので 何も入れてない状態だと pinentry-gtk2 が インストールされてしまってディスクの無駄に…。 なので次の順番で入れる。
通常は gpg と打つだろうから、以下の処理をしておく。$ sudo apt-get install pinentry-curses gnupg2 gnupg-agent
$ cd /usr/bin $ sudo ln -s gpg2 gpg
* 公開鍵と秘密鍵の作成
鍵の種類はデフォルト、4096bitにして期限は無期限で作成。けっこう時間がかかる。 鍵ペアが作成されたら確認。$ gpg --gen-key
公開鍵を公開鍵サーバに送る。$ gpg --list-key /home/sharl/.gnupg/pubring.gpg ------------------------------ pub 4096R/7222030A 2011-07-26 uid Sharl Morlaroll <sharl@hauN.org> sub 4096R/6E7133FF 2011-07-26
登録されたか確認。$ gpg --send-keys 7222030A gpg: sending key 7222030A to hkp server keys.gnupg.net
おっと、ほかにも sharl さんいる(笑)$ gpg --search-keys sharl gpg: searching for "sharl" from hkp server keys.gnupg.net (1) Xia Zheng Xin (From China) <xzx@xiazhengxin.name> Sharl Jimh Tsin (From China) <amoiz.shine@gmail.com> Xiao Xin (From China) <x@taiwan-is-a-part-of-china.org> Xiao Xin (From China PRC) <x@tibet-is-a-part-of-china.org> Sharl.Jimh.Tsin (From China *Obviously Taiwan INCLUDED*) <amoiz.shine@ 2048 bit RSA key 238AC4E3, created: 2011-09-17 (2) Sharl Morlaroll <sharl@hauN.org> 4096 bit RSA key 7222030A, created: 2011-07-26 (3) Roman Narozhny <sharl@df.ru> 1024 bit DSA key F0FD84A7, created: 1998-11-11 Keys 1-3 of 3 for "sharl". Enter number(s), N)ext, or Q)uit > 2 gpg: requesting key 7222030A from hkp server keys.gnupg.net gpg: key 7222030A: "Sharl Morlaroll <sharl@hauN.org>" not changed gpg: Total number processed: 1 gpg: unchanged: 1
* パスフレーズを自動入力するために
サーバ起動時に gpg-agent を使えるように crontab に書いておきますか。
んで ~/.profile に次のように書いておく。@reboot /usr/bin/gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info"
実際に署名をしようとすると出てくる pinentry-curses がうざい…あのダイアログなんとかならんものか。これは今後の研究課題にしよう。if [ -f "${HOME}/.gpg-agent-info" ]; then source "${HOME}/.gpg-agent-info" export GPG_AGENT_INFO fi
これでパッケージ作成の時の署名が楽になった。