質問: どの秘密鍵を使うべきかをgitに教えるにはどうすればいいですか? sshには、認証時に使用する秘密鍵ファイルを指定するための-iオプションがあります。 -i identity_file rsaまたはdsa認証用のid(秘密鍵)が読み取られるファイルを選択します。デフォルトは、プロトコルバージョン1の場合は~/.ssh/identity、プロトコルバージョン2の場合は~/.ssh/id_rsaおよび~/.ssh/id_dsaです。アイデンティティファイルは、構成ファイルでホストごとに指定することもできます。複数の-iオプション(および構成ファイルで指定された複数の識別情報)を持つことが可能です。 ~/.sshディレクトリに複数の秘密鍵があるシステムで、どの秘密鍵ファイルを使用するかをgitに指示するための同様の方法はありますか?
回答: $git_sshとの闘いの後、私は私のために働いたことを共有したいと思います。私の例では、あなたの秘密鍵は/home/user/.ssh/jenkinsにあると思います。避けるべきエラー:git_ssh値にオプションが含まれています$ export git_ssh="ssh -i /home/user/.ssh/jenkins" gitは値をファイルとして実行しようとします。そのため、スクリプトを作成する必要があります。$ git_sshスクリプト/home/user/gssh.shの使用例スクリプトは次のように呼び出されます。$ $git_ssh [username@]host [-p <port>] <command> サンプルスクリプトの動作は次のようになります。#!/bin/sh ssh -i /home/user/.ssh/jenkins $* 最後の$*に注意してください。それはその重要な部分です。より安全な方法でも、デフォルトの設定ファイル内のものと衝突する可能性を避けるために(そして使用するポートを明示的に言及するために)、#!/bin/sh ssh -i /home/user/.ssh/jenkins -f /dev/null -p 22 $* スクリプトが/home/user/gssh.shに含まれていると仮定すると、次のようになります。$ export git_ssh=/home/user/gssh.sh そしてすべてがうまくいくでしょう。