git - Server host key not cached
I try to push changes from my local repo to a remote repo. When I type:
git push origin
I get the following error:
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly
How can I solve this? I'm using git from the command line in Windows 7.
Edit
When I try to do a simple ssh
ssh user@hostname
I get the following error:
Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H
Somehow it will not create the directory, because the path is invalid. How to fix this?
@eckes: Edit2
My Home is set to %HOMEDRIVE%%HOMEPATH%
is this correct?
Solution 1:
For those of you who are setting up MSYS Git on Windows using PuTTY via the standard command prompt, the way to add a host to PuTTY's cache is to run
> plink.exe <host>
For example:
> plink.exe codebasehq.com
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 2e:db:b6:22:f7:bd:48:f6:da:72:bf:59:d7:75:d7:4e
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)
Just answer y
, and then Ctrl+C the rest.
Do check the fingerprint though. This warning is there for a good reason. Fingerprints for some git services (please edit to add more):
- GitHub:
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
- Bitbucket:
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
- Gitorious:
7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
Solution 2:
Try doing a "set | grep -i ssh" from the Git Bash prompt
If your setup is like mine you probably have these set:
GIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
PLINK_PROTOCOL=ssh
SVN_SSH='"C:\\Program Files (x86)\\PuTTY\\plink.exe"'
I did a
unset GIT_SSH
unset PLINK_PROTOCOL
unset GIT_SVN
and it worked after that,.. I guess putty saves its keys somewhere else as $HOME/.ssh or something... (I've also had a problem on a box where $HOME was set to "C:\Users\usrnam" instead of "/C/Users/usrnam/"
anyway, your mileage may vary, but that fixed it for me. :-)
(probably just doing the unset GIT_SSH is enough, but I was on a roll)
Note: if unset doesn't work for you, try this:
set GIT_SSH=