BLOGTIMES
2015/07/06

git で ssh 公開鍵認証する

  git  sh 
このエントリーをはてなブックマークに追加

git で ssh 公開鍵認証を行うためには git 内部から呼出される ssh に -i オプションで秘密鍵を指定してやる必要があります。
ついでに known_hosts のエラーがでないように -o StrictHostKeyChecking=no もつけておきたいところ。

git のリファレンスを確認すると、環境変数のところに*1 GIT_SSH, GIT_SSH_COMMAND という項目があるので、これを使って以下のような感じでやろうと思ったのですが、これは上手く動きませんでした。

GIT_SSH=/usr/bin/ssh -o StrictHostKeyChecking=no -i /home/me/my_private_key

同じような感じではまった人を 「Git clone with custom SSH using GIT_SSH error - Stack Overflow」 で発見したので、内容を読んでみると GIT_SSH にラッパーのシェルスクリプトを渡す必要があるようです。

まず、こんな感じのシェルスクリプトを用意しておいて、

/some/path/git_ssh.sh

#!/bin/sh exec /usr/bin/ssh -o StrictHostKeyChecking=no -i /home/me/my_private_key "$@"

あとは環境変数にシェルスクリプトを指定して、git のコマンドを普段通りに実行するだけ。

export GIT_SSH=/some/path/git_ssh.sh git fetch

分かってしまえばこれだけなのですが、意外と手こずってしまいました。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7739
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン