384 文字
2 分
Gitで秘密鍵を指定してリモートリポジトリを操作する
2018-11-24
2018-12-02

githubとbitbucketを併用している場合などは、~/.ssh/configにドメインごとにどの鍵を使用するか指定するのが一般的だと思います。
しかし、githubをマルチアカウントで運用するような場合は、ドメインが同じなのでこの方法は使えません。

前々から不便だなーと思っていたのですが、設定ファイルに頼らずに、リモートリポジトリを操作するときにどの鍵を使用するか指定できることを知ったので、その方法のメモです。

gitのバージョン確認#

今回の方法は、gitのバージョン2.3から使用できるようなので、まずはgitのバージョン確認をします。

Terminal window
$ git --version
git version 2.7.4

どうやら対応しているようです。ちなみに環境はWSLなのでUbuntu 16.04です。

リモートリポジトリ操作時に鍵を指定する#

リモートリポジトリを操作するときに鍵を指定するコマンドはこれです。GIT_SSH_COMMANDという環境変数を使います。

Terminal window
$ GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' gitコマンド

例えば、git clone時に鍵を指定する場合はこんな感じになり、

Terminal window
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git clone リモートリポジトリ

git pushの場合はこんな感じになります。

Terminal window
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git push origin master

タイプ数は増えるものの自由に鍵を指定できるので、githubとかbitbucketのマルチアカウントの運用もストレスなく使えるようになりました。

参考サイト:git clone 時に秘密鍵を指定する #Git - Qiita