リポジトリ認証に依存しているため、使用する秘密鍵を直接伝える方法はありません。ただし、目標を達成する方法はまだいくつかあります。git
ssh
オプション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_SSH
v0.99.4(2005)以降で使用可能です。
オプション4: ~/.ssh/config
~/.ssh/config
他の回答で提案されているようにファイルを使用して、秘密鍵の場所を指定します。たとえば、
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa