gitコマンドラインでgitサイトに使用したい任意のキーファイルを指定できるように、私が知っている2つの方法は次のとおりです。このキーファイルを構成ファイルまたはスクリプトにハードコーディングする必要はありません。これを git コマンドラインで直接指定するだけです。
方法 1: GIT_SSH 環境変数を使用する
コマンドラインでの使用法は次のようになります。
$ PKEY=~/.ssh/keyfile.pem git clone git@github.com:me/repo.git
このコマンドを使用するには、いくつかの事前設定を行う必要があります。まず、次の内容でシェル スクリプトを作成します。
#!/bin/sh
if [ -z "$PKEY" ]; then
# if PKEY is not specified, run ssh using default keyfile
ssh "$@"
else
ssh -i "$PKEY" "$@"
fi
次に、GIT_SSH 変数をエクスポートして、上記のシェル スクリプトの場所と同じ値を設定します。
$ export GIT_SSH=~/ssh-git.sh
~/ssh-git.sh は、上記のシェル スクリプトのファイル名です。
スクリプトは実行可能である必要があるため、chmod を実行します。
$ chmod +x ~/ssh-git.sh
これで、使用するキーファイルを指定してこのコマンドを実行できます。
$ PKEY=~/.ssh/keyfile1.pem git clone git@github.com:me/repo.git
別のホストに別のキーファイルを使用するには:
$ PKEY=~/.ssh/keyfile2.pem git clone git@myothersite.com:other/repo.git
これは、使用したいすべてのキーファイルをサポートします。使用したいキーファイルで git を実行する必要があるたびに、それを PKEY 変数に指定するだけです。GIT_SSH が事前に構成されている限り、他のすべてを忘れることができます。
PKEY 変数に注意してください。GIT_SSH が指しているシェルスクリプトで使用されているものと一致する限り、任意の名前を使用できます。
方法 2: ラッパー スクリプトを使用する
ラッパー スクリプトの使用法は次のようになります。
$ git.sh -i ~/.ssh/keyfile.pem clone git@github.com:me/repo.git
-i オプションを指定して ssh を実行しているように見えるため、この使用法は直感的です。
これには、シェル スクリプトと GIT_SSH の事前設定は必要ありません。git コマンドを使用して、この 1 つのラッパー スクリプトをダウンロードして実行するだけです。
このラッパー スクリプトのコピーは、http: //alvinabad.wordpress.com/2013/03/23/how-to-specify-an-ssh-key-file-with-the-git-command/で入手できます。