I searched for a while but I can't find a solution to my Problem.
I have a Server I can connect to via ssh with the username git
and a local git repository.
Now I want to push my local repository to a newly created one on the Server.
Here is what I did:
- created a git repository in
/home/git/test.git
- initialized the repository as bare
- added the remote repository on the local machine
git remote add test ssh://git@serverIp:/home/git/test.git
- now I executed the push command:
git push test master
I always get the
fatal: could not read from remote repository
Please make sure you have the correct access rights
and the repository exists.
I am working on a local windows 7 machine and want to upload to a linux server.
I can log in via ssh with the git
user.
I also tried to do this as the root
user(to get things to work once) with the same result.
I never get asked for the ssh password
.
I really don't know what I am doing wrong.
Before you call this a duplicate, I searched a lot for this problem and none seemed to talk about the same problem.
update:
- "which git" returns /usr/bin/git
- PATH echo includes /usr/bin
- id_rsa and id_rsa.pub files are all set up and withput Passphrase
- ssh git@serverIp which git-receive-pack works too and returns /usr/bin/git-receive-pack
- ssh git@serverIp ls /home/git/test.git works
- all relevant directories are chmod 755
- git is owner of the repository
- auth.log file gets no new entries on tried push command
- GIT_TRACE=2 git push test master returns:
'C:\Program Files (x86)\PuTTY\plink.exe' '-batch' 'git@serverIp' 'git-receive-pack '\''/home/git/test.git'\''' fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
In this case, using openssh over putty was key.
Original answer (tips for debugging)
That means this works:
You do have a
HOME
variable defined, and ssh public/private keys (id_rsa
/id_rsa.pub
) in%HOME%/.ssh/
.This question suggests a different url:
Make sure you did create your git repo as git (and not as root, when you created the git account, as in this question).
ssh git@serverIp "which git"
should return the path of the git executable.Check also that all parent directories have the relevant
x
(execute) bit set for the usergit
or the groupgitgroup
, runningls -ld /home /home/git /home/git/test.git
.Also, getting more info for a git command can be done with:
git push --verbose
or:
GIT_TRACE=2 git push test master
If you have a private ssh key with a password, it would be best to first test those ssh commands with a private ssh key not password-protected, to see if the issue persists.
Or, you can keep that password-protected ssh key, but double-check your
.bashrc
as in this answer.For any ssh connection issue (where git's password is needed), check:
/var/log/auth.log
,In your case, since it works with
ssh git@serverIp
(interactive secure shell), but not with git (which opens a non-interactive secure shell), have a look at this thread, which references this one:Make sure that
/etc/profile
does define the path forgit
, since a non-login account could be used here (that seems to be the case here, sincessh git@serverIp "which git"
worked, andssh git@serverIp "git --version"
should too).But check also the right issue, and test a
chmod 755
on/home
,/home/git
and/home/git/test.git
.You can also check your SSH identities by doing:
I had a similar problem. There was a wrong key in my identities, don't remember why. I just delete all my identities (maybe you will need to add keys again):
Then I did push/pull without problems.
Set GIT_SSH environment variable to the full path of
TortoisePlink.exe
(you may have to download TortoiseGit for this) instead of PuTTY'splink.exe
. This will allow for popup dialog window to prompt for things, i.e., confirm fingerprint, or enter password. If you useplink.exe
through Git, you cannot type in responses to plink.exe prompts, which if there are any prompts will cause the fatal error you saw.I personally had 2 different issues with this:
plink
(which is used by git on Windows) does not acceptid_rsa
private key as it is in OpenSSH 2 format => I had to convert it (usingputtygen
) to PuTTY own.ppk
format and attach via Git Extensions "Remotes
" dialogI specified the path to git folder wrongly, 'cause my ssh session was chrooted (It might be wrong word) and I specified that what was my FTP "
root
" as "/
", while it was "/home/www/username/
" instead.I understood all this, using
GIT TRACE=2
as described above and also by usingprocmon
to determine the exact command-line forplink
and then playing with it, adding "-v
" option ("verbose").