384 文字
2 分
Gitで秘密鍵を指定してリモートリポジトリを操作する
githubとbitbucketを併用している場合などは、~/.ssh/configにドメインごとにどの鍵を使用するか指定するのが一般的だと思います。
しかし、githubをマルチアカウントで運用するような場合は、ドメインが同じなのでこの方法は使えません。
前々から不便だなーと思っていたのですが、設定ファイルに頼らずに、リモートリポジトリを操作するときにどの鍵を使用するか指定できることを知ったので、その方法のメモです。
gitのバージョン確認
今回の方法は、gitのバージョン2.3から使用できるようなので、まずはgitのバージョン確認をします。
$ git --versiongit version 2.7.4どうやら対応しているようです。ちなみに環境はWSLなのでUbuntu 16.04です。
リモートリポジトリ操作時に鍵を指定する
リモートリポジトリを操作するときに鍵を指定するコマンドはこれです。GIT_SSH_COMMANDという環境変数を使います。
$ GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' gitコマンド例えば、git clone時に鍵を指定する場合はこんな感じになり、
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git clone リモートリポジトリgit pushの場合はこんな感じになります。
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git push origin masterタイプ数は増えるものの自由に鍵を指定できるので、githubとかbitbucketのマルチアカウントの運用もストレスなく使えるようになりました。