githubとbitbucketを併用している場合などは、~/.ssh/config
にドメインごとにどの鍵を使用するか指定するのが一般的だと思います。しかし、githubをマルチアカウントで運用するような場合は、ドメインが同じなのでこの方法は使えません。
前々から不便だなーと思っていたのですが、設定ファイルに頼らずに、リモートリポジトリを操作するときにどの鍵を使用するか指定できることを知ったので、その方法のメモです。
gitのバージョン確認
今回の方法は、gitのバージョン2.3から使用できるようなので、まずはgitのバージョン確認をします。
$ git --version git 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のマルチアカウントの運用もストレスなく使えるようになりました。
参考サイト:
git clone 時に秘密鍵を指定する - Qiita
git の支援が弱くて変なやり方しかない。=> GIT_SSH_COMMAND または git -c core.sshCommand が使えます。.ssh/config をいじる.ssh/co…
コメント