Умеет толкать, тянуть, но не тянуть

Итак, я только что потратил ~ 4 часа, пытаясь заставить репо работать под URL-адресом SSH в Windows, я почти у цели, но столкнулся с этой странной проблемой.

я могу использовать

git push origin master
git fetch origin master
ssh git@github. #tells me authentication is successful but shell access is not allowed

и все местные команды. Однако, когда я пытаюсь выполнить git pull, я получаю:

-bash-4.1$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
-bash-4.1$

У меня есть id_rsa и id_rsa.pub под %HOME%/.ssh, и открытый ключ добавлен в мою учетную запись GitHub. Мой URL-адрес git также правильный.

ИЗМЕНИТЬ

-bash-4.1$ git --version
git version 1.8.5.2.msysgit.0

person XrXr    schedule 04.02.2014    source источник


Ответы (3)


Проблема может сохраняться, потому что git и cygwin имеют разные каталоги .ssh.

Когда вы делаете ssh git@github, он использует тот, который указан в папке .ssh cygwin, но когда вы делаете git pull, он использует id_rsa, присутствующий в папке git bash's .ssh.

См. мой вопрос => клон ssh не клонирует репо в git

person Ashish Gaur    schedule 04.02.2014
comment
Бинго! git pull читал из /home/‹name›/.ssh cygwin, а ssh читал из %HOME%/.ssh! Странно, как выборка и отправка считываются из %HOME%, а вытягивание - нет... - person XrXr; 04.02.2014
comment
@XrXrXr У меня была та же проблема, но я могу делать git pull и клонировать, но не git push. (Я также под cygwin.) Вы знаете, где именно находятся две папки .ssh? Для меня закрытые ключи хранятся в папке ~/.ssh. ($HOME равно /home/<name>) В cygwin which git даст /usr/bin/git - person Weishi Z; 15.09.2014
comment
@WeishiZeng Этот вопрос настолько старый, что я даже не решаюсь ответить на него. Вот оно: %HOMEPATH% -> \Users\{username}, %HOME -> /cygdrive/c/Users/{username}. Значение по умолчанию %HOMEPATH% задается Windows. %HOME% устанавливается Cygwin - person XrXr; 15.09.2014
comment
Также может быть полезно %USERPROFILE%. Прочтите en.wikipedia.org/wiki/Environment_variable. - person XrXr; 15.09.2014
comment
@XrXrXr Спасибо, что все еще отвечаете. Думаю, я запутал вас, и у нас могут быть разные проблемы. Я запускаю git push в Cygwin на Windows 7. И я установил git и ssh в Cygwin. (в Windows C:\Users\{username} папки .ssh нет.) - person Weishi Z; 15.09.2014

Вот как я решил свою проблему:

Создайте файл с именем config файл под cygwin64/home/<username>/.ssh

Добавьте к нему строку IdentityFile <path to your private key>

person XrXr    schedule 04.02.2014

Возможно, вы тянете из другого места?

Пытаться:

git pull origin master
person Loe    schedule 04.02.2014