やりたいこと
ssh経由でgit cloneなどをした際に、リポジトリが公開鍵認証方式だと「~/.ssh/id_rsa」が参照される。
一時的にこの参照を別の秘密鍵(id_rsa)ファイルに変更したい。
git cloneした際に、「Enter passphrase for key ‘/PASS/TO/.ssh/id_rsa’:」となり、このパスフレーズがわからなかった。
リポジトリサーバには別の公開鍵も登録してあったので、一時的にこの公開鍵の秘密鍵でcloneしたかった。
ただし「~/.ssh/config」は変更したくなかった。
やり方
GIT_SSH環境変数を設定し、sshが使用する鍵ファイルを変更してから、gitがsshするようにする。
→「ssh -i」で読み込む秘密鍵ファイルを変更し、GIT_SSHにスクリプトファイルとして渡す。
一時的に利用する秘密鍵を「~/.ssh/hoge.id_rsa」とする。
GIT_SSH環境変数に渡すスクリプトファイルを「git_ssh.sh」とする。
1 |
$ echo 'ssh -i ~/.ssh/hoge.id_rsa $@' > ./git_ssh.sh;chmod +x ./git_ssh.sh;GIT_SSH='./git_ssh.sh' git clone ssh://user@git-repository.example.com/PATH/TO/REPO;rm ./git_ssh.sh; |
参考
Git – git Documentation の「GIT_SSH」「GIT_SSH_COMMAND」の部分
ssh経由のgitで「~/.ssh/id_rsa」以外の秘密鍵を参照させる方法