【发布时间】:2018-03-21 13:16:25
【问题描述】:
为了访问我的远程 git,我每次推送或拉取时都会添加对 SSH 的引用:
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_bit_rsa" git pull origin master
有没有办法让 git 记住 SSH,这样我就不需要每次都添加它?
【问题讨论】:
为了访问我的远程 git,我每次推送或拉取时都会添加对 SSH 的引用:
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_bit_rsa" git pull origin master
有没有办法让 git 记住 SSH,这样我就不需要每次都添加它?
【问题讨论】:
你可以这样做:
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_github
(根据需要替换用户和主机名,以及身份文件)
在~/.ssh/config
【讨论】:
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 用您的主机名。
【讨论】: