每次我需要使用 git pull 时,我都需要运行ps aux | grep ssh
,终止所有 ssh 进程(包括)ssh-agent
,然后输入命令eval `ssh-agent`
和ssh-add ~/.ssh/my_key
。配置未得到维护。(我生成了两个密钥,第一个运行良好,第二个有这个问题)。
答案1
github.com
我发现我需要告诉 ssh-agent 在处理类似或任何其他连接时的密钥是什么。如果你有远程( git remote -v
)[email protected]:path/to/file.git
,你应该在路径中创建一个 ssh 配置文件,~/.ssh/config
配置如下
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/<github_private_key>
其中github_private_key
是您想要与远程服务器绑定的私有密钥github.com
。Host
配置是配置的别名,我使用等同于 的别名是HostName
因为我已经配置了远程服务器。一般情况下,如果您有一个远程服务器user@host:path/to/file.git
,并且您正在配置与 github 的连接,则配置应该包含此内容
Host <host>
HostName github.com
User <user>
IdentityFile ~/.ssh/<github_private_key>
为了以最佳方式获得此配置,您可以~/.ssh/config
像这样在文件上创建新的配置
Host my-alias
HostName github.com
User git
IdentityFile ~/.ssh/<github_private_key>
现在,您可以使用, 如果您已经克隆了 git 存储库,则可以将远程更改为。git clone [email protected]:path/to/file.git
git clone git@my-alias:path/to/file.git
git@my-alias:path/to/file.git