仕事で日報を6年ほど書いてるんですが、ずっとある悩みがありました。それが 「クラウドにバックアップできない」 というものです。githubへアップロードするのは、社外秘情報などを含んでいるため、たとえプライベートリポジトリであっても気が引けます。
しかし git-remote-gcrypt というツールを見つけて、この問題が一気に解決しました。今回は 安全にgitリポジトリをサーバーへアップロードする方法 を紹介します。
git-remote-gcryptを使えばgitリポを暗号化してアップロードできる
git-remote-gcrypt は、push/pull する際に暗号化/復号を行うようにしてくれるツール です。 git remote add origin gcrypt://ssh/host/path/to/repo.git のようにして、gcrypt経由でリモートリポジトリとやり取りするよう設定するだけで、そのリモートへpushする時には暗号化、pullする時には復号するようにしてくれます。
git-remote-gcryptはgitリモートとのやり取りの時に暗号化/復号するだけなので、 それ以外のgit操作は普通にすることができます。
gitリポジトリを暗号化してpushするまでの流れ
サーバーの準備
GitHubもリモートとして使えます。いつも通り空のリポジトリを作ればOKです。
クライアントの準備
- git-remote-gcrypt をインストール
brew install git-remote-gcrypt - GPGのセットアップ
- user.signingkeyのセットと、gpg.program=/opt/homebrew/bin/gpg の準備
- gitリモートを設定
git remote origin gcrypt::git@github.com:{username}/{repository}.git - あとはいつもどおりgit操作をする
これで、暗号化されてからサーバーへpushされるようになります。
暗号化されたgitリポジトリのクローン方法
クローン方法はめっちゃ簡単です。
- GPGのセットアップ/sshのセットアップを済ませる
git clone gcrypt::git@github.com:{username}/{repository}.git
これだけです。