Git GPG暗号化
GitGPG
2019年2月15日 更新GPG紹介
GPG(GNU Privacy Guard)というのは暗号化ツールです。
Gitでソースを管理し、暗号したいアイテムがあれば、使いましょう!
その仕組みはAESで公開鍵とプライベート鍵を使って、対象アイテムを解読し、共有していくことです。
上記によって、チームでGPGを使う時が、プライベート鍵と公開鍵の管理は各メンバーが知っておかないといけないことです。
インストール
ここはMacを例して行っていきます。
まずはGPGツールをインストールしていきます。
$ brew install gnupg gnupg2 pinentry-mac
$ mkdir ~/.gnupg
$ echo "pinentry-program /usr/local/bin/pinentry-mac" >>~/.gnupg/gpg-agent.conf
その後はGit暗号化ツール
をインストールしていきます。
名前が git-crypt
になります。
$ brew install git-crypt
手順
インストール完了しましたら。
各コマンドで確認を行ってください。
$ gpg -h
$ git crypt -h
ペア鍵作成
ペア鍵というのは公開鍵と対応しているプライベート鍵です。
$ gpg --generate-key
$ gpg --output ファイル名前.gpg --export [設定のメールアドレス]
$ gpg --output ファイル名_secret.gpg --export-secret-key 登録したメールアドレス
GitCrypt初期化
git-crypt
を使って、コミットとともに自動的に暗号化していくため、下記で登録していたメールアドレスを追加します。
$ git crypt init
$ git crypt add-gpg-user [設定のメールアドレス]
注意: .git-crypt/keys/default/0/
ディレクトリ内に公開鍵を配置して、コミットしています。
配置
.gitattributes
のルールを作成
ファイルパス filter=git-crypt diff=git-crypt
対象のファイルやパスのファイルに対して、git上の動作を定義しました。
検証
対象ファイルをエディターで開いていて、うまく開けないならば暗号化されたことを証明します、また、下記のコマンドで暗号化と解読化の切り替えできます。
$ git crypt unlock
ファイルを見えるようになります
$ git crypt lock
ファイルが他人に見えない
Git管理
モダンの開発だと、基本的にGithubを使われていて、公式に従えば、うまく登録できると思います。
参考として、github gpgを登録できるらしいので、必要を情報を作成して登録すればいいと思います。
$ gpg --armor --export 登録したメールアドレス | pbcopy
$ open https://github.com/settings/gpg/new
メンバー追加
受け取った他者の公開鍵は、下記のようにインポートできます。
$ gpg --import 他人のgpgファイル
GnuPGでは、公開鍵はこのままでは信用したことにならず、インポートした鍵を信頼する手続きを行います。
$ gpg --sign-key 他人のメールアドレス