有没有直接的方式告诉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
您可以在一行中输入所有内容-忽略$
并忽略\
。
选项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
注意:以上几行是shell(终端)命令行,您应该将其粘贴到终端中。他们将创建一个名为的文件ssh
,使其可执行并(间接)执行该文件。
注意:GIT_SSH
自v0.99.4(2005)起可用。
选项4: ~/.ssh/config
~/.ssh/config
按照其他答案中的建议使用文件,以指定私钥的位置,例如
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa