Git 在错误的位置寻找我的 SSH key

标签 git ssh gitlab ssh-keys

试图 pull 下 Gitlab 中的存储库让我有点头疼。顺便说一句,如果有帮助的话,这一切都是在 Ubuntu VM 上的 Windows 8.1 中完成的。我已经在 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 会看那里,还是我想错了?任何人都可以为我阐明一些事情吗?

最佳答案

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

它 (openssh) 会在以下位置找到它们:

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

OP Neil Kelsey确认 in the comments%HOME%\.ssh\config造成某种干扰。

而且推送 url 似乎仍在引用 https url。
一个简单的git remote set-url --push origin <ssh/url>解决了这个问题。

关于Git 在错误的位置寻找我的 SSH key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28784883/

相关文章:

git - 我可以在两个 SVN 存储库中拥有一个项目吗?

git - 如何将一个分支的内容复制到另一个分支?

linux -/etc/profile 中的环境变量不适用于 Ubuntu 12.04LTS 上的 HBase

docker - 分别运行gitlab和gitlab-shell

git - 如何在 gitlab 中拒绝 merge 请求

git - 检查远程分支

git - 为什么 "git status"不显示远程分支已更改?

git - oh-my-zsh 慢,但只适用于某些 Git 仓库

mysql - 在 Windows 上通过 putty 编写 ssh 脚本

go - ssh 客户端显示服务器支持的算法