git: fatal: Could not read from remote repository
GitGit Problem Overview
I am trying to set git up with http://danielmiessler.com/study/git/#website to manage my site.
I have gotten to the last step in the instructions: git push website +master:refs/heads/master
I am working using the git ming32 command line in win7
$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
One problem here may be that the program is looking for Bill@***.com. when I connect via ssh to my site I have a different username( lets say 'abc'). so maybe this should be abc@***.com. If so I don't know how to change this or if I can push under an alias
Git Solutions
Solution 1 - Git
Your ssh key most likely had been removed from ssh agent
ssh-add ~/.ssh/id_rsa
where id_rsa is a ssh key associated with git repo
Update
You may get Could not open a connection to your authentication agent.
error to resolve that you need to start the agent first by:
eval `ssh-agent -s`
Solution 2 - Git
I was facing same issue a while ago...
my .git/config had
url = [email protected]:manishnakar/polymer-demo.git
I replaced it with
url = https://github.com/manishnakar/polymer-demo.git
and it works now:)
Solution 3 - Git
You can specify the username that SSH should send to the remote system as part of your remote's URL. Put the username, followed by an @
, before the remote hostname.
git remote set-url website abc@***.com:path/to/repo
Solution 4 - Git
Make sure you have correct url in .git/config
url = [email protected]:username/repo.git
If it's your first push, you'll need to set up correct upstream
$ git push -u origin master
You can check which key is used by:
$ ssh -vvv git@github.com
The reply should contain something like this:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.
Also it's possible to define rules for ssh in ~/.ssh/config
, e.g. based on aliases:
Host github
HostName github.com
User git
IdentityFile "~/.ssh/id_rsa"
Host git
HostName github.com
User git
IdentityFile "~/.ssh/some_other_id"
You can set connect to different ports, use different username etc. for each alias.
Solution 5 - Git
Try removing the GIT_SSH environment variable with unset GIT_SSH
. This was the cause of my problem.
Solution 6 - Git
This is usually caused due to the SSH key is not matching with the remote.
Solutions:
-
Go to terminal and type the following command (Mac, Linux) replace with your email id.
ssh-keygen -t rsa -C "[email protected]"
-
Copy the generated key using following command starting from word ssh.
cat ~/.ssh/id_rsa.pub
-
Paste it in github, bitbucket or gitlab respective of your remote.
-
Save it.
Solution 7 - Git
Make sure ssh-agent is running by executing the following command on your terminal:
eval $(ssh-agent -s)
Source: Github documentation
Solution 8 - Git
I had a wrong ssh private key for Bitbucket along with the right one in ssh agent.
Deleted all keys first
ssh-add -D
Then added just the right key.
ssh-add ~/.ssh/id_rsa
Solution 9 - Git
I had the same problem.
This error means that you have not specified your remote URL location upon which your code will push.
You can set remote URL by 2 (mainly) ways:
-
Specify remote URL via executing command on Git Bash.
-
Navigate to your project directory
-
Open Git Bash
-
-
Execute command:
* `git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>`
- Mention remote URL direct in config file
-
Navigate to your project directory
-
Move to .git folder
-
Open config file in text editor
-
Copy and paste below lines
[remote "origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/origin/*
For more detailed info visit this link.
Solution 10 - Git
After doing some research I've finally got solution for this, you have declared a environment variable to plink.exe path. So if you remove that path, reopen the git bash and try cloning through SSH it will work.
Refer to this link
Solution 11 - Git
I had the same error.
The solution was following:
I've corrected my url in .git/config
.
Just copied that from HTTPS clone URL. That would be something like that:
url = https://github.com/*your*git*name*/*your*git*app*.git
It worked.
Solution 12 - Git
Another workaround:
Sometimes this happens to me because of network problems. I don't understand the root problem fully, but switching to a different sub-network or using VPN solves it
Solution 13 - Git
If after"git push origin master" command u see the error "could not read from remote repository" then try this out
1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master
Solution 14 - Git
In your .git/config file
[remote "YOUR_APP_NAME"]
url = git@heroku.com:YOUR_APP_NAME.git
fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*
And simply
git push YOUR_APP_NAME master:master
Solution 15 - Git
If you use Gitlab than you might need to log in and accept Gitlab new terms, before you try to pull or push.
Solution 16 - Git
updated OCT 2020
In most of the case when you have more than one user access the same git server from a same client system, that time git server confused to with access key with the user both users allowed but when you fire command that time its used default user.
ssh -T git@gitlab.com
see which user are activatly you try to push with that user
the simple solution removes the unused user public key from the git server.
then try to git fetch or pull, push it will work for me
Solution 17 - Git
In my case I was using an ssh key with a password to authenticate with github. I hadn't set up pageant properly in Windows (only in cygwin). The missing steps were to point the git_ssh environment variable to plink.exe. Also, you need to get github.com into the plink known_hosts.
plink github.com
y
<then ctrl-c>
Hope this helps!
I sure wish intellij would have given me a more useful error, or better yet asked me to type in the ssh key password.
Solution 18 - Git
I had a perfectly fine working git and suddenly I got that error when I tried to push to the master. As I found out, it was because the repository host had problems.
If you using GitHub or Bitbucket you can easily check the status at
https://status.github.com/messages or https://status.bitbucket.org/
Solution 19 - Git
I have tried everything including generating new key, adding to the GitHub account, editing .ssh/config and .git/config. But still it was giving me the same error. Then I tried following command and it does work successfully.
ssh-agent bash -c 'ssh-add ~/.ssh/id_rsa; git clone git@github.com:username/repo.git'
Solution 20 - Git
I meet the problem just now and fix it by: git config user.email "youremail"
.
update: The root cause maybe my poor network and poor proxy. I still don't know why it happened, but every time has this error, this command works!!!
Solution 21 - Git
You need to use HTTPS for Git:
Type this into the Terminal:
$ git remote set-url origin abc@***.com:path/to/httpURLRepo
Then commit:
$ git add .
$ git commit -m "This is the commit message"
Solution 22 - Git
For my case, I am using Corporate network (without internet connection) in office. In order to pull code from github, I set https proxy in gitbash and then use https instead of ssh to pull code,it works fine. However when comes to push code, the https proxy won't work. So either switch to Internet network (with internet connection) or set ssh proxy can solve the problem.
Solution 23 - Git
Actually I tried a lot of things to make it work on Win7, since changing the SSH exectun fron native to build-it and backwards and the same error. By chance, i change it to HTTPS in the ".git/config" file as:
[remote "origin"]
url = https://github.com/user_name/repository_name.git
fetch = +refs/heads/*:refs/remotes/origin/*
and it finally worked. So maybe it could work for you as well.
Solution 24 - Git
I had the same issue and after a while I saw I'm under root user (with sudo -s). May this help for someone.
Solution 25 - Git
user@server:/etc/nginx$ cat .git/config
...
[remote "origin"]
url = git@gitlab.com:user/.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
- Use ssh instead of https.
- To use ssh key in git (add ssh key).
- If you are root, use the ssh key.
$ sudo ssh-keygen
$ cat /root/.ssh/id_rsa.pub
$ git init
$ git add file
$ git commit -m "add first file"
$ git remote add origin [email protected]:user/example.git
$ git push -u origin master
Solution 26 - Git
I solved this issue by restarting the terminal (open a new window/tab).
So if you don't really want/need to understand the underlying problem, test method is worth a try before digging deeper :)
Solution 27 - Git
I had this problem using gitbash on windows 10. I tried several things to solve this problem, the major ones being these:
- Recreated my ssh keys and updated to bitbucket. Didn't help
- Turned on debugging using this and found out that I was getting "shell request failed on channel 0" as asked here
- Rebooted my windows PC
None of the above helped. I ended up re-installing Git for windows This took only a few minutes as compared to other things I did and it solved the problem!
Solution 28 - Git
In my case, The bitbucket's web ssh key setup UI is confusing.
Repository Settings -> Access keys -> Add key : Error
Personal settings -> SSH keys -> Add key : Ok
The public key registration screen is mutually exclusive. You must register the public key only in one place. It seems good to unify them on one screen.
Solution 29 - Git
In my case it was the postBuffer..
git config --global http.postBuffer 524288000
For reference read: https://gist.github.com/marcusoftnet/1177936
Solution 30 - Git
I had the same error, which brought me to this answer that didn't help me. I was trying to create a new "bare" repository for the first time using the commands below to track to an NTFS location:
cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status
My problem turned out to be using the back slashes instead of forward slashes in the NTFS location when trying to add origin to set the (new) tracked upstream branch.
I had to remove the origin using:
git remote rm origin
Then add the origin again using the expected forward slashes
git remote add origin //myserver.mycompany.local/myrepository.git
Hope this helps someone in the future.
Solution 31 - Git
I've got this error after changing computers. I'm using SourceTree with Bitbucket.
So I had to add the SSH key generated by SourceTree, on the new computer, in Bitbucket Settings > Security > SSH keys, while connected to my Bitbucket account on the web.
Solution 32 - Git
I was getting this problem intermittently, where most of the time it would not give the error message. The solution for me was to configure LDAP correctly after my LDAP server's IP address had changed.
The /etc/gitlab/gitlab.rb
configuration for LDAP was pointing to a non-existent IP address, and so changing the host to point to the proper hostname for the LDAP server fixed the issue.
To diagnose the issue, use the gitlab-ctl tail
command to help you find stacktraces. For me, I found this stacktrace:
==> /var/log/gitlab/gitlab-rails/production.log <==
Net::LDAP::Error (No route to host - connect(2) for 10.10.10.12:389):
/opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap/connection.rb:72:in `open_connection'
...
Make the changes to the host value in /etc/gitlab/gitlab.rb
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
label: 'My LDAP'
# this was an IP address
# host: '10.10.10.12'
host: 'internal-ldap-server' # this is the fix
port: 389
After changing the config file above, be sure to reconfigure gitlab
gitlab-ctl reconfigure
Solution 33 - Git
It could be a Network issue.
Try doing the ssh -vvvT [email protected]
. If the server hangs unexpectedly it could be a dodgy network connection.
Put the following in your ~/.ssh/config
IPQoS lowdelay throughput
Solution 34 - Git
In my case, I was trying to clone with sudo
. As per Github's doc, you shouldn't use sudo with git clone:
https://help.github.com/en/github/authenticating-to-github/error-permission-denied-publickey#should-the-sudo-command-be-used-with-git
What I did is give the currrent user permission to edit the directory (Debian 9):
chown myuser:root .
Then cloned without sudo
and it worked.
Solution 35 - Git
If you have set recievepack or uploadpack in my case i got the error after setting them by mistake
receivepack = powershell git receive-pack
in my case in .git/config
You can remove them as by the answer bellow
https://stackoverflow.com/a/26207308/7668448
Or by directly modifying .git/config
Solution 36 - Git
Sometimes you need to use full URL with ssh://
scheme:
ssh://git@yourhost:port/path/repo.git
or with specified port:
ssh://git@yourhost:port/path/repo.git
For me it solved the problem.
Solution 37 - Git
run into this because I am in China with Great Firewall...
> kex_exchange_identification: Connection closed by remote host fatal: > Could not read from remote repository. > > Please make sure you have the correct access rights and the repository > exists.
Solution 38 - Git
In my case the problem and it's solution was written right in front of me. Earlier that day I edited the /etc/ssh/ssh_config file and added some keys. The error said:
/etc/ssh/ssh_config: line 52: Bad configuration option: allowusers
/etc/ssh/ssh_config: terminating, 1 bad configuration options
fatal: Could not read from remote repository.
I deleted the allowusers
key and it's value and everything worked as expected.
Solution 39 - Git
Not the OP' problem, but if you're working in a GitHub organization/ team, you might not have write permissions on the repository. Unfortunately, git doesn't show more specific permissions errors. In my case, I was working on a private repository, and had been given "Triage" or "Read" access.
For more information about repository access for each permission level, see GitHub documentation.
The link to change this on GitHub is https://github.com/orgs/ORGANISATION_NAME/teams/TEAM_NAME/repositories
, where you can change the permissions given to the team.
Solution 40 - Git
I had the same issue and resolved by updating to the latest git version
Solution 41 - Git
Pretty straightforward solution that worked for me, see below:-
Problem
$ git clone git@github.com:xxxxx/xxxx.git my-awesome-proj
Cloning into 'my-awesome-proj'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
This should also timeout
$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out
This might work
$ ssh -T -p 443 git@ssh.github.com
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
Override SSH settings
$ vim ~/.ssh/config
# You can also manually open the file and copy/paste the section below
# Add section below to it
Host github.com
Hostname ssh.github.com
Port 443
Then try again
$ ssh -T git@github.com
Hi xxxxx! You've successfully authenticated, but GitHub does not
provide shell access.
Try cloning now (should work)
$ git clone git@github.com:xxxxxx/xxxxx.git my-awesome-proj
Cloning into 'my-awesome-proj'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0
Receiving objects: 100% (15/15), 22.90 KiB | 4.58 MiB/s, done.
Reference: here => Use HTTPS with Port 443
Solution 42 - Git
For those having this problem on a private remote repo. make sure you have accepted the Xcode agreement on the remote server: it took we weeks to find out this fix
Use this command from the command line: sudo xcodebuild -license
Solution 43 - Git
I just wanted to add to this question. I had Git setup to use PLink and Pageant for authentication and I was also getting the error FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
. I had Pageant opened but the error was still showing up. The problem? I didn't have the private key loaded in Pageant (to add a key, follow these instructions). It was that simple.
Solution 44 - Git
i just wanted to share that i found a easy fix for that:
Access denied. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
just logout from gitlab and login again. The problems should then be fixed.
Solution 45 - Git
When using putty/pageant, make sure you did not forget to add the correct SSH key to pageant, else this error shows up. DUH
Solution 46 - Git
Go to MINGW32 terminal put this Command : git branch --set-upstream-to=origin/(branch Name)
Solution 47 - Git
If you are still getting the same error, please make sure that in the git settings->ssh tab->ssh client to use is set to openSSH
Solution 48 - Git
According to my experience, one of the reasons this problem occured is because you have an unstable internet connection.
Solution 49 - Git
I faced the same issue; simply you can run this on your command window:
git remote add origin https://your/repository/url
Solution 50 - Git
Adding to the "I had the same problem and...", I am also using git via Ming32 (git bash) shell in Windows.
In my case the repo requires me to type a password, not using SSH key, but it was not prompting for the password, just saying "fatal: Could not read...", although I could SSH in normally, using plink and ssh, and had set both known-host keys.
I tried most of the recommendations here and in other SOs.
I found in the end it worked fine in Powershell, but not in git bash, with no changes or corrections.
Solution 51 - Git
I would recommend to check all remotes you have configured with git remote -v
If you had your repo configured to a remote that was deleted you will receive this error message: fatal: Could not read from remote repository. Please make sure you have the correct access rightsand the repository exists.
Even when trying to push or pull to an other (existing) remote. So if you have a remote that was deleted, you can remove with git remote remove name-of-remote-to-remove
and after that you can push or pull to your existing remotes without problems.
Solution 52 - Git
I was getting this error while trying to push code to my personal git from work - defaults point to work git. So I followed these steps:
- Went to my personal git account and created repo with default settings
- On terminal, git remote add origin [email protected]:
/ .git - git push --set-upstream origin master, ensuring that origin is upstream and the next commits can be made using git push only.
For some reason, no other way worked for me. Hope this helps someone working with 2 or more git accounts.
Solution 53 - Git
I encounter this issue by enter many times error password.
so I have to change the MaxAuthTries to a bigger number:
open the sshd_config
in server end:
vim /etc/ssh/sshd_config
change the MaxAuthTries number:
MaxAuthTries 100 # there I change to 100, you can change to a bigger than your current tries number
Solution 54 - Git
My solution was quite simple actually. I just had to copy and place the fingerprint from this question "Please type 'yes', 'no' or the fingerprint" instead of just hitting enter.
Solution 55 - Git
I had the same error but if you pass the command again you will notice that you are prompted: Are you sure you want to continue connecting (yes/no)?
, and by writing "yes" and then hitting enter it should be resolved.
Solution 56 - Git
In a rare case, you'll get "fatal: Could not read from remote repository" error, like in
[user@example.com repo]$ git fetch --all --prune
Fetching origin
exec request failed on channel 0
fatal: Could not read from remote repository.
when Git server filesystem is full. To verify this, please run:
ssh -v ssh://git@yourhost/path/repo.git
If the server replies like this:
...
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/...
SHA256:...
debug1: Server accepts key: /home/...
SHA256:...
Authenticated to linux-git.....com ([xxx.xxx.xx.xx]:xx) using "publickey".
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: filesystem full
...
debug1: Remote: PTY allocation disabled.
PTY allocation request failed on channel 0
shell request failed on channel 0
then the disk space on the server is exhausted.
I understand that this answer won't get many up-votes; adding it for the sake of completeness.
P.S. It is also possible to use something like
GIT_SSH_COMMAND="ssh -v" git pull
to diagnose the problem.
Solution 57 - Git
In my case, I pulled the project without forking it while doing an open-source contribution which landed me in this error.
Also make sure, that you add your public ssh key to the remote ssh key from your terminal using this command
add-ssh /keyPath
Eg: I had saved my public key inside github folder and this folder is inside a hidden ssh folder, hidden ssh folder in home directory so, ssh key file path is something like this
~/.ssh/github/id-rsa
So the command in terminal to add local ssh key to remote would be
add-ssh ~/.ssh/github/id-rsa
Solution 58 - Git
I solved this problem by switching to root with sudo su.