【问题标题】:Git can't find .sshGit 找不到 .ssh
【发布时间】:2011-02-18 14:29:38
【问题描述】:

在 Windows 上使用 msysgit 的问题;它找不到 .ssh/id_rsa,即使它存在于它应该在的位置。

我证实这是 ssh -v git@github.com 的问题;该命令仅在我使用 -i 选项将其显式指向正确的 id_rsa 文件时才有效,但据我所知,git 本身没有这样的选项;而且我在 Google 或提供的文档中都找不到任何内容。

奇怪的是,几个月前我上次使用 git 时它运行良好,从那以后我没有改变任何东西,这似乎是一个可能的原因。

我尝试了以下方法,都没有效果:

  • 生成新的 id_rsa

  • 将 .ssh 放入当前目录

  • 将 .ssh 放入根目录

  • 卸载 msysgit 并重新安装最新版本

  • 设置 HOME 环境变量

  • 安装 TortoiseGit 并尝试替代(根本不起作用)

还有什么可以尝试的吗?

【问题讨论】:

  • 至少在 linux 上,ssh 会接受 -vv-vvv 来增加冗长性 - 也许这会告诉你它到底在哪里寻找密钥?
  • 它确实接受了这些,但输出是一样的:它声称在 /.ssh/id_rsa 中查找,但它存在(因为我确实在根目录中放置了 .ssh 的副本,如果明确指出,ssh 可以读取)。
  • 嗯。为什么它会在/.ssh/id_rsa 而不是$HOME/.ssh/id_rsa 中寻找呢?
  • 如果我知道的话,我会比现在知道的更多!
  • 当你说你设置 HOME 时,你的意思是在 shell 中,对吗?然后你出口了? (我相信你做到了,我只是缺乏像你这样的想法 - 我很确定 ssh 只是在 $HOME/.ssh/id_rsa 中查找,所以这真的使它看起来像 $HOME 实际上是空的`...)

标签: git msysgit


【解决方案1】:

找到了!

问题在于有两个不同的 git 命令,git.exe(实际程序)和 git.cmd(设置必要的东西以使其在 Windows 上工作)。根据您在安装时设置的选项,您最终可能会遇到这样一种情况,即前者而不是后者最终会出现在您的路径中,因此它不起作用。然后,除非您运行 git.cmd,否则有关 ssh.exe 的常规调试建议将不起作用。

简而言之,只要确保您运行的是 git.cmd 而不是 git.exe。

【讨论】:

  • 如何确保这一点?
【解决方案2】:

奇怪的是 msysgit 有它自己的 .ssh 目录:

C:\Program Files (x86)\Git\.ssh

将您的 ssh 密钥放在那里应该可以工作。它为我解决了问题

【讨论】:

  • 还是这样吗?找不到此文件夹。
【解决方案3】:

我在 Msys/MinGW 中遇到了 git 的这个问题,它无法找到我的私钥,尽管能够正常 ssh 进入服务器。

问题是~/.ssh/config中的条目说:

Host github.com
IdentityFile /home/username/.ssh/id_rsa

但是 Git 需要从 Windows 的角度来看的完整路径,如下所示:

Host github.com
IdentityFile c:/mingw/msys/1.0/home/username/.ssh/id_rsa

然后它起作用了。

要从 msys 发现此路径,请运行 cd ~/.ssh,然后运行 ​​pwd -W

【讨论】:

    【解决方案4】:

    【讨论】:

    • 链接页面显示使用 putty 是您在安装时选择的选项,但最新版本的 msysgit 没有给我任何此类选项;这是改变了还是什么?
    【解决方案5】:

    我们的管理员更改了 Windows 上的 HOMEDRIVE,之后 ssh 等工具不再找到他们的配置。似乎HOMEDRIVE 被用作HOME 的默认值。

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 2018-08-06
      • 1970-01-01
      • 2016-08-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      相关资源
      最近更新 更多