NAKED WETWARE

「わがままになるのが怖い奴に宇宙は拓けねェさ」

gitの認証でたくさんのsshキーがありすぎるときの解決方法

僕の場合、リポジトリA、リポジトリBでそれぞれ異なるSSHキーを使っていることがある。

例えば会社絡みリポジロリではid_rsa_aで、個人プロジェクトではid_rsa_b、推し事関連ではid_rsa_cなど。

git push するとき、それぞれで合う秘密鍵を指定してgit pushしてる。

まあだけど、いつもググってばっかりなので、備忘を残す。

運用を見直せってのもあると思うけど、ちょっと思いつかない。

TL;DR

  • ~/.ssh/configに設定を追加する
  • git の remote 設定を変更する

詳しくはここ

configファイルを作成する

~/.ssh/にconfigファイルを作成する。

以下の要領でconfigファイルを設定する。

Host hogehoge
    HostName github.com              # このホスト設定で使いたいGitのホスティングサービス
    IdentityFile ~/.ssh/id_rsa_hoge  # 秘密鍵の方
    User git                         # githubとかでクローンするとき`git@github.com`ってなってると思うけど、その`@`の前のやつ
    IdentitiesOnly yes
    Compression yes
Host fuga
    HostName github.com
    IdentityFile ~/.ssh/id_rsa_fuga
    User git
    IdentitiesOnly yes
    Compression yes

remoteの設定を変更する

git remote -v

origin git@github.com:hogehoge/fuga-project.git (fetch)
origin git@github.com:hogehoge/fuga-project.git (push)

とか出てくる。

このURL git@github.com:piyo/fuga-project.git を、configファイルで設定したものに書き換える

git remote set-url origin hoge:piyo/fuga-project.git

上記のコマンドで、

origin hoge:hogehoge/fuga-project.git (fetch)
origin hoge:hogehoge/fuga-project.git (push)

となる。

これで、git push時に、configで設定した秘密鍵が勝手に当たるようになる。

QOLがちょっぴり上がった。