永久添加SSH密钥

3

为了访问我的远程git,我每次推送或拉取时都会添加SSH引用:

GIT_SSH_COMMAND="ssh -i ~/.ssh/id_bit_rsa" git pull origin master

有没有办法让git记住SSH,这样我就不需要每次都添加了?
2个回答

9

Git不关心你的SSH密钥。在幕后,它调用ssh。如果环境变量GIT_SSH_COMMAND被设置,则它不使用ssh,而是使用GIT_SSH_COMMAND变量的内容。

使其永久生效的一种方法是编写:

export GIT_SSH_COMMAND="ssh -i ~/.ssh/id_bit_rsa"

在你的.profile(或.bash_profile)中使用这个命令会带来更多的伤害,如果你使用多个远程主机。
正确的解决方法是正确配置ssh。编辑文件~/.ssh/config(如果它不存在则创建该文件),并将以下内容放入其中:
Host bitbucket.com
User guy
IdentityFile = ~/.ssh/id_bit_rsa

当然,将bitbucket.com替换为托管您Git仓库的服务器的实际名称(我从密钥文件中的“bit”部分猜测了BitBucket),将guy替换为您在主机上的名称。


6
您可以这样做:
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_github

~/.ssh/config文件中,根据需要替换用户名、主机名和身份文件。


2
只有使用Host、User和IdentityFile字段才对我有效。由于某种原因,HostName在密钥搜索中没有被使用。Kubuntu 20.04。 - DenisNovac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接