rwallace
rwallace

Reputation: 33375

Git can't find .ssh

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 [email protected]; 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:

Any ideas what else to try?

Upvotes: 13

Views: 20865

Answers (5)

abergmeier
abergmeier

Reputation: 14052

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.

Upvotes: 0

sparrowt
sparrowt

Reputation: 2968

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

Upvotes: 3

Simon Dean
Simon Dean

Reputation: 79

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

Upvotes: 1

rwallace
rwallace

Reputation: 33375

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.

Upvotes: 8

mpapis
mpapis

Reputation: 53158

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

Upvotes: 0

Related Questions