Git
この記事の内容は2020年7月頃のものです。
Gitはバージョン管理システムのひとつで、本稿の管理にも利用されています。変更内容にデジタル署名をすることで、管理されているプログラムコードなどの利用者が変更内容の検証をすることができるようになります。
GnuPGによるOpenPGP鍵対の生成が完了している環境で、commitコマンドに-Sオプションを追加することでデジタル署名できます。
shellsession
$ git commit -S
[master fd70ab6] Start writing about signing on Git
1 file changed, 7 insertions(+)
create mode 100644 docs/misc/README.mdgpg2の利用
Ubuntu 16.04など、OSによっては、最近のGnuPGがgpg2コマンドとして提供されている場合があります。下記のコマンドで、Gitがgpgコマンドの代わりにgpg2コマンドを利用するようになります。
shellsession
$ git config --global gpg.program gpg2常にデジタル署名するよう設定することもできます。
shellsession
$ git config --global commit.gpgsign true公開鍵がインポートされている環境で、デジタル署名を検証することができます。
shellsession
$ git verify-commit fd70ab6
gpg: Signature made Fri 26 Jun 2020 08:08:24 AM HST
gpg: using RSA key F60960D80B224382CA8D831CB56C20316D6E8279
gpg: issuer "zundan@gmail.com"
gpg: Good signature from "zunda <zundan@gmail.com>" [ultimate]GitHubにOpenPGP公開鍵をアップロードすることで、GitHub上でデジタル署名が検証されるようになります。公開鍵はASCII Armorにしてコピーする必要があります。
shellsession
$ gpg --export --armor F60960D80B224382CA8D831CB56C20316D6E8279
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBF7y5CEBDADCBGI+RhNbXWjHOhIwBX9k1kxr6t/nTcec97vMNMxLYn3qxaWc
(中略)
z53RAXLlDXUjh5wQPrsASA==
=ELpI
-----END PGP PUBLIC KEY BLOCK-----GitHub上でデジタル署名の検証に成功すると「Verified」というマークが表示されます。

GitHubに登録されているOpenPGP公開鍵は、GitHubのREST API v3 (https://api.github.com)のGET /users/:username/gpg_keysから取得することができます。また、https://github.com/:username.gpgから取得することもできるようです。後者では、登録されているすべての公開鍵が1つのASCII Armorに同梱されるようです。
