(git bash) push to bitbucket ignores SSH key
I followed a bunch of blog trails around the web to find out how everything should be set up and I have the following situation:
conq: logged in as myuser.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
That means I have the ssh key setup properly both local and in bitbucket, agreed?
I have a ~/.ssh/config with the following content:
Host bitbucket.org IdentityFile ~/.ssh/id_rsa
That key is there ofcourse.
However, when I try the command (taken from another tutorial)
git push origin master, I will get a popup saying:
--------------------------- PuTTY Fatal Error --------------------------- Disconnected: No supported authentication methods available (server sent: publickey) --------------------------- OK
5 Solutions collect form web for “(git bash) push to bitbucket ignores SSH key”
Judging by the error
PuTTY Fatal Error, it looks like Git is trying to use PuTTY to authenticate with ssh. The thing is PuTTY is not aware of your setting in
~/.ssh, at all. The setting in
~/.ssh is only meaningful when using
openssh, shipped with Git Bash. It looks as if you have set the
GIT_SSH environment variable to
plink.exe, which is a tool that’s part PuTTY.
You have two choices: you can either use PuTTY and
plink.exe for ssh operations, or you can use the
openssh that is part of Git Bash.
If you use PuTTY, then you need to manage your ssh keys with
pageant.exe, which is also part of PuTTY. It’s a pretty nice tool. Run it, and in the task tray you should see an icon. Right-click on that icon to add your private key. The other step to use PuTTY is setting
GIT_SSH but it looks like you’ve already done that. In this setup
git push will use
plink.exe, which being part of PuTTY, will correctly find the private keys stored by
If you want to use the
openssh that is part of Git Bash, then all you need to do is get rid of the
GIT_SSH setting. One way to make sure the setting is really empty when using
git push is if you run the command like this:
GIT_SSH= git push origin master
After all the other answers didnt do it for one of my collegues, I figured the following:
Since pushing to remotes like beanstalk works (https) and even ssh works using the git bash console, I figured it must have something to do with how SSH would be invoked, our remote was something like this:
So a simple
which ssh gave us
.bashrc profile we just added
An easier solution would be to buy a mac! 🙂
You are trying to connect to Bitbucket via SSH rather than through Git which is what the first error is telling you. That you are not allowed to connect to Bitbucket in that manner.
When you set up your repo, if you are off of a existing one in Bitbucket all you would have needed to do is:
git clone firstname.lastname@example.org:<UserName>/<Name of the Repo>.git
You would get a message about accepting a key and you would have been all set.
Now if you have an already existing repo, you can add the remote yourself but you would add that to
You would add
email@example.com:<UserName>/<Name of the Repo>.git to the section
Try using cmd.exe. Git Bash seems to have issues with environment variables on my machine.
echo %GIT_SSH% to see if it is set (PuTTY/Plink does that). If it is set, and you want to use openssh, clear it with
After doing that, I could push and pull using ssh in CMD with no issue, although Git Bash still does not work.
I was having the same problem and enabling compression solved it. In
[ui] ssh = ssh -C