リモート Git リポジトリへの公開に使用する SSH グループ キーを設定する必要があります。
git(そしておそらく他の多くのプログラム)ではフラグの遅延を定義することができないため、ssh -i
どのキーが使用されるかという情報はデフォルトまたはで定義されているものから取得されます。~/.ssh/config
これには、この機能を必要とするユーザーに対して新しい管理タスク (つまり、~/.ssh/config
ファイルに適切なエントリを追加する) が必要になります。
この労力を省く方法はあるでしょうか? OpenSSH によって読み取られる環境変数を見つけることができませんでしたが、それが解決策になるはずです (必要なことを実行するラッピング スクリプトを作成することによって)。
答え1
答えは次のようになります (tink さん、ありがとうございます):
ssh-agent を使用してキーを保持すると、常に機能します。そのためには、呼び出しをスクリプトにカプセル化できます。
#!/bin/bash
key=$1
[[ "$SSH_AGENT_PID" ]] || eval $(ssh-agent)
ssh-add $key
#...the rest of the script...
git の特定のケースでは、GIT_SSH
ssh の代わりに呼び出されるコマンドを指す環境変数があります。そのため、ssh
フラグを発行することが可能です-i
。
これは概念実証であることを警告しておきますが、スクリプトをロードした後は環境が影響を受けないようにする必要があります (つまり、エージェントが存在し、キーがロードされていない場合はキーを削除する必要があります。エージェントが存在しない場合は、エージェントを削除します)。