背景
SSH認証でGitを使用してリモートリポジトリにプッシュするときGitコマンドはリポジトリへアクセスするために必要な秘密鍵を使用して認証する。
SSH認証には、通常、~/.ssh/id_rsa
などの秘密鍵が使用される。しかし、場合によっては異なる秘密鍵を使用してリポジトリにアクセスしたいことがある。例えば、いつもとは異なるユーザー名でGitリポジトリにアクセスする必要がある場合など。
sshやscpコマンドであれば-i
オプションでキーを指定できるがGitコマンドにはsshコマンドの-i
オプションに相当するオプションは無い。
方法
設定項目core.sshCommand
でgitコマンドから使用するsshコマンドを指定できる。
さらにgitコマンドの-c
オプションで設定をそのコマンドだけ一時的に変更できる。
これを使えば以下のようなコマンドでキーを指定したgitコマンドを実行できる。
$ git -c core.sshCommand="ssh -i キーのファイルパス" push origin main
clone
やfetch
などその他のsshを使用するコマンド全般でも同様。
\第一線のプログラマーの行動原理を学べる!/