It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Permission denied (publickey). fatal: Could not read from remote repository.

Chuck Aug 11, 2014

I have an individual bitbucket account and am a member of a team on bitbucket.

Recently I created a new bitbucket repository on my individual account and pushed code from a local repository into it. I then transfered that repository from my individual account to my team account, and I accepted the transfer on behalf of my team.

After making some changes on my local code base i tried to push those changes to origin with a git push and received the following error message:

nw-client (master)]$ git push
fatal: https://[myname]@bitbucket.org/[myname]/nw-html-client.git/info/refs?service=git-receive-pack not found: did you run git update-server-info on the server?

I realized at that point that I needed to update my origin's URL, so I typed the following git command into the terminal:

git remote set-url origin git@bitbucket.org:[myteamname]/nw-html-client.git

But,

git ls-remote

returns

[nw-client (master)]$ git ls-remote
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

My git.config file looks like this:

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = false
[remote "origin"]
	url = git@bitbucket.[myteamname]/nw-html-client.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

What am I doing wrong? Any help would be greatly appreciated!

11 answers

1 accepted

14 votes
Answer accepted
Rafael Sperafico Atlassian Team Aug 13, 2014

Hi Chuck,

Thank you for your question.

It seems you had your repository under the HTTPS protocol and once you set the URL origin your repository became to connect under the SSH protocol. Would be possible to generate a key-pair, add the public key to your Bitbucket repository and the private key to your ssh and give it a try, please.

Kind regards,
Rafael

Chuck Aug 24, 2014

That was it. Thanks!

Helton Denis Jul 29, 2018

Thanks!

Like Ivan Avilov likes this
carmelo Aug 14, 2018

Rafael,

I had the same issue and followed your suggestion. Looks like the initial issue was solved but now I'm not able to perform a push of my commit due to this error:

 

repository access denied. access via a deployment key is read-only.

fatal: Could not read from remote repository.
Rafael Sperafico Atlassian Team Aug 14, 2018

Hi @carmelo,

The first thing that comes to my mind relates to the SSH key used having 'Read' permissions and not 'Read/Write' permission.

Please, refer to SSH access keys for system use documentation for further information.

Kind regards,

Rafael

Like Emmanuel Ibikunle likes this
carmelo Aug 14, 2018

Rafael,

for some reason I don't get the Read, Read/Write options shown on step 5 in the document you shared. 

Screen Shot 2018-08-14 at 10.02.23.png

 

Under myrepository/settings/access keys looks like I'm given only the option to add read-only keys:

Screen Shot 2018-08-14 at 10.04.09.png

I am the owner/admin of the repository I'm trying to commit to.

How can I enable the Read/Write option?

 

thanks

Rafael Sperafico Atlassian Team Aug 14, 2018

Hi @carmelo,

The screenshot you have provided suggests your repository is on Bitbucket Cloud (https://bitbucket.org).

The documentation mentioned (SSH access keys for system use) relates to Bitbucket Server instead.

Perhaps, go to your user account in Bitbucket Cloud and add SSH key from there instead (Cog icon >> Bitbucket settings >> Security >> SSH keys)

Kind regards,

Rafael

Like # people like this
carmelo Aug 14, 2018

Rafael, I followed your instructions but can't really say conclusively if it worked: when I tried to run the push command I got an error about the URL not found. I changed the type of repository from SSH to HTTPS in Sourcetree, which changed the URL. When I attempted the push again I was prompted with a window to enter the bitbucket credentials (due to the HTTPS method) and I was finally able to make the commit but I can't say if the the SSH keys configured in the server side had anything to do - probably not.

In any case the Add SSH keys window was also without Read/Write option.

Quick question: the SSH key set in the server section would be global for anything on the bitbucket account (as opposed to specific to the repository)?

thanks again for the help

Carmelo 

Like Haris Mavrokefalidis likes this
anton agape Aug 26, 2018

@carmelo @Rafael Sperafico

 hey bro, i got some error with carmelo. I cant find the read n write option after follow this instruction: (Cog icon >> Bitbucket settings >> Security >> SSH keys)

Like # people like this
6 votes
Sergio Hernandez I'm New Here Jan 28, 2019

I had the same problem, but I solved when I changed remote url to HTTPS with this command:

git remote set-url origin <bitbucket_URL>

After that, I could push the content to the repository with this command:

git push -u origin --all
2 votes
Jan Nielsen Sep 23, 2018

If you have multiple SSH identities, you will likely need to setup an SSH config file to allow git+ssh to select the correct identify

Greg Cadmes I'm New Here May 30, 2019

This worked for me, thank you.

1 vote
Bill Feth Feb 13, 2019 • edited

In my case, the build machine had been misconfigured - the id_rsa and id_rsa.pub files were owned by root, so the local jenkins account could not read from the private key to authenticate!

The solution was to change ownership of these files to the local jenkins user:

$ sudo chown jenkins ~jenkins/.ssh/id_rsa ~jenkins/.ssh/id_rsa.pub

where "jenkins" is the name of the account our jenkins build manager uses to login and conduct a build.

1 vote
Anil Prajapati Feb 25, 2019

Just change the url of your remote in your local git

`

git remote set-url origin git@bitbucket.org:[myteamname]/nw-html-client.git

`

And then force push all to remote

git push -u origin --all
0 votes
Peter Coxhead Feb 15, 2016

I encountered the same problem but it my public ssh key was registered.  It turned out to be simply a DNS issue.  Once the hostname resolved everything was happy.

Chris Giddings Oct 17, 2017

Could you provide more detail to this?

Peter Coxhead Oct 17, 2017

I'm sorry I don't recall much more than that.  I may have changed which network interface I was using to connect to the network or perhaps the IT department moved the repo to a new machine / IP address (thought that's unlikely).

0 votes
Sjoerd Oudman Jul 03, 2018

I also encountered a similar problem recently, I could load my remote repositories but not clone/pull/push etc. As has happened before this had to do with locally adding the ssh key to my ssh-agent. This is a problem I've run into more often on mac. I found this article very useful:

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#adding-your-ssh-key-to-the-ssh-agent

0 votes
Rene Dohan Oct 25, 2018

The problem is that sourcetree is loading url of remote when you add it by that button with link git@github.com:rene-dohan/ but then it is failing with that git error

Permission denied (publickey). fatal: Could not read from remote repository.

and you have to change it manually to https://rene-dohan@github.com/rene-dohan/ , its clear bug on side of sourcetree but I think they just didn't get it yet... 

PS:

1 - sure you have to modify links I posted to yours ;) haha

2- Anyway nice program for the price :)

0 votes
Manimaran O Nov 22, 2018

ssh -agent -s

ssh-add ~/.ssh/id_rsa 

0 votes
Seamus Roche Mar 12, 2019 • edited

In my case, I was erroneously passing my user ID in my set-url command.  I updated and set remote by omitting the user ID from this command. This solved the issue for me:

git remote set-url origin git@bitbucket.org:myGitRepo.git

 

0 votes
mark simmons Jun 08, 2019

These answers pointed me in the right direction. I had a similar issue pushing after I cloned from my bb repo to a rasp pi and couldn't the push changes to origin master. I had already added my linux pi's ssh public key to the bb keys but still got fatal error. I changed git config to use https by using 

git remote set-url origin https://someusername@bitbucket.org/.../somerepo.git

and then could push as expected.

Suggest an answer

Log in or Sign up to answer
This widget could not be displayed.
This widget could not be displayed.
Community showcase
Published in Bitbucket Pipelines

Building a Bitbucket Pipe as a casual coder

...ipe.sh :  #!/bin/bash source "$(dirname "$0")/common.sh" enable_debug extra_args="" if [[ "${DEBUG}" == "true" ]]; then extra_args="--verbose" fi # mandatory variables R...

3,063 views 1 20
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you