Permission denied (publickey)
When attempting to clone, push or pull over SSH with Git or Mercurial, you receive the message
Permission denied (publickey).
remote: Permission denied (publickey). abort: no suitable response from remote hg!
abort: Permission denied: (project name)
You are receiving this message because Bitbucket Cloud could not authenticate you with any of the keys that were offered to it by your SSH agent. To verify this is the case, do the following
ssh -T email@example.com
This will attempt to create a connection to Bitbucket Cloud for Mercurial. You should receive a response similar to the following if your key is correctly loaded
$ ssh -T firstname.lastname@example.org conq: logged in as username.
If you do not see a message similar to the above, read on.
Causes & Resolutions
This can be caused by a couple of factors, but these are the most common:
- Your public key isn't loaded into Bitbucket Cloud
To check to see if your public key is loaded into Bitbucket Cloud, do the following:
- Open a browser and log into Bitbucket Cloud.
- Choose Your avatar > Bitbucket settings from the menu bar.
The system displays the Account settings page.
- Click SSH keys in the Security section.
The SSH Keys page displays. It shows a list of any existing keys.
- If you do not have any keys listed, follow Set up an SSH key to set one up.
- Your identity isn't loaded into your SSH Agent
If your SSH agent doesn't know to offer Bitbucket Cloud a key, the connection will fail. To find out what keys your SSH Agent currently is offering, and add them, do the following:
Double-click Pageant to view loaded keys
Click 'Add Key' to add any key not found in the list
On GitBash, OSX or Linux
$ ssh-add -l
Then, if you don't see your key listed, add it by
For more information, check out our full Troubleshoot SSH issues guide.
- You do not have permission to create the repository on your local filesystem
If you get the error "Permission denied", it is also possible that git or mercurial doesn't have permission to create the project folder locally. Check permissions for the directory where you're attempting to check out the project, and make sure you have write access.