リポジトリ認証に依存しているため、使用する秘密鍵を直接伝える方法はありません。ただし、目標を達成する方法はまだいくつかあります。gitssh
オプション1: ssh-agent
を使用ssh-agentして、秘密鍵を一時的に認証できます。
例えば:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
オプション2: GIT_SSH_COMMAND
GIT_SSH_COMMAND環境変数(Git 2.3.0以降)を使用してssh引数を渡します。
例えば:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
これをすべて1行で入力できます。無視して$、を省略します\。
オプション3: GIT_SSH
GIT_SSH環境変数を使用してssh引数を渡し、代替sshバイナリを指定します。
例えば:
$ echo 'ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH='./ssh' git clone user@host
注:上記の行は、シェル(端末)コマンド行であり、端末に貼り付ける必要があります。という名前のファイルを作成し、ssh実行可能にし、(間接的に)実行します。
注:GIT_SSHv0.99.4(2005)以降で使用可能です。
オプション4: ~/.ssh/config
~/.ssh/config他の回答で提案されているようにファイルを使用して、秘密鍵の場所を指定します。たとえば、
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa