Git在错误的位置寻找我的SSH密钥

时间:2015-02-28 17:47:04

标签: git ssh gitlab ssh-keys

我试图拉下Gitlab中的存储库时,我一直有些头疼。如果有帮助的话,这一切都在Windows 8.1的Ubuntu VM上完成。我在Gitlab中添加了我的公钥,并将我的私钥添加到ssh-agent ......一切似乎都正确。

当我尝试做一个git pull时,这就是我遇到问题的地方。在我看来,Git只是在错误的位置查找,我的私钥存储在c / Users / Neil / .ssh中,但好像git正在查看c / Users / Neil / .ssh / 342/200 / 217 ...

C:\Users\Neil\code\homestead>git pull
no such identity: /c/Users/Neil/.ssh/id_rsa\342\200\217: No such file or directory
git@git.mgmt.local's password:

我不知道为什么git会在那里看,或者我在想这个错误?谁能为我解释一些事情?

2 个答案:

答案 0 :(得分:7)

GitLab本身并不是在寻找你的ssh密钥:作为客户端,你使用ssh联系GitLab,这意味着只有openssh正在寻找这些密钥。

它(openssh)会找到它们:

  • %HOME%\.ssh(因此请检查环境变量HOME设置为什么)
  • %HOME%\.ssh\config(其中IdentifiyFile指令可以为ssh私钥设置自定义路径,因此请检查您是否有.ssh/config文件)

OP Neil Kelsey确认%HOME%\.ssh\config git remote set-url --push origin <ssh/url>造成了某种干扰。

推送网址似乎仍然引用了https网址 一个简单的{{1}}修正了。

答案 1 :(得分:0)

对于 macOS 用户,可以通过运行以下命令来修复此问题:

rm ~/.ssh/known_hosts # remove previous hosts
ssh-add -A # add all known SSH keys

运行上述命令后,问题应该已解决。