Git can't find .ssh

余生颓废 提交于 2019-12-03 17:04:49

问题


Problem using msysgit on Windows; it can't find .ssh/id_rsa, even though it is present where it should be.

I verified that's the problem with ssh -v git@github.com; that command works when and only when I use the -i option to explicitly point it at the correct id_rsa file but as far as I can tell, git itself doesn't have such an option; and I can't find anything either on Google or in the supplied documentation.

The peculiar thing is, it worked fine last time I used git a few months ago, and I haven't changed anything since then that seems a likely cause.

I've tried the following, all to no effect:

  • Generating new id_rsa

  • Putting .ssh in current directory

  • Putting .ssh in root directory

  • Uninstalling msysgit and reinstalling the latest version

  • Setting the HOME environment variable

  • Installing TortoiseGit and trying that instead (didn't work at all)

Any ideas what else to try?


回答1:


Found it!

The problem is that there are two different git commands, git.exe (the actual program) and git.cmd (which sets up the necessary stuff for it to work on Windows). Depending on what options you set at install time, you can end up with a scenario where the former rather than the latter is the one that ends up in your path, so it doesn't work. Then the usual debugging suggestions regarding ssh.exe don't work unless you've run git.cmd.

In a nutshell, just make sure you're running git.cmd instead of git.exe.




回答2:


Oddly msysgit has it's own .ssh directory:

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

Placing your ssh key there should work. It solved the problem for me




回答3:


I had this problem with git in Msys/MinGW where it couldn't find my private key, despite being able to ssh into the server fine.

The problem was that the entry in ~/.ssh/config said:

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

However Git required the full path from a Windows point of view like this instead:

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

and then it worked.

To discover this path from msys, run cd ~/.ssh and then pwd -W




回答4:


The windows way is to import your ssh key to putty and use putty agent.




回答5:


Our admins changed the HOMEDRIVE on Windows and afterwards tools like ssh did no longer find their config anymore. Seems like HOMEDRIVE is used as default value for HOME.



来源:https://stackoverflow.com/questions/5042482/git-cant-find-ssh

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!