Нажатие на Git возвращает код ошибки 403 неустранимый: HTTP-запрос не выполнен - PullRequest
591 голосов
/ 16 сентября 2011

Мне удалось клонировать копию этого репозитория с проверкой подлинности по протоколу HTTPS. Я сделал несколько коммитов и хочу вернуться на сервер GitHub. Использование Cygwin в Windows 7 x64.

C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
error: The requested URL returned error: 403 while accessing https://MichaelDrog
alis@github.com/derekerdmann/lunch_call.git/info/refs

fatal: HTTP request failed

Также настройте его в подробном режиме. Я все еще довольно сбит с толку.

C:\cygwin\home\XPherior\Code\lunch_call>set GIT_CURL_VERBOSE=1

C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
  CApath: none
* SSL connection using AES256-SHA
* Server certificate:
*        subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
*        start date: 2011-05-27 00:00:00 GMT
*        expire date: 2013-07-29 12:00:00 GMT
*        subjectAltName: github.com matched
*        issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
*        SSL certificate verify ok.
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
< WWW-Authenticate: Basic realm="GitHub"
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host github.com left intact
* Issue another request to this URL: 'https://MichaelDrogalis@github.com/dereker
dmann/lunch_call.git/info/refs?service=git-receive-pack'
* Couldn't find host github.com in the _netrc file; using defaults
* Re-using existing connection! (#0) with host github.com
* Connected to github.com (207.97.227.239) port 443 (#0)
* 0x23cb740 is at send pipe head!
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
* Authentication problem. Ignoring this.
< WWW-Authenticate: Basic realm="GitHub"
* The requested URL returned error: 401
* Closing connection #0
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
  CApath: none
* SSL re-using session ID
* SSL connection using AES256-SHA
* old SSL session ID is stale, removing
* Server certificate:
*        subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
*        start date: 2011-05-27 00:00:00 GMT
*        expire date: 2013-07-29 12:00:00 GMT
*        subjectAltName: github.com matched
*        issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
*        SSL certificate verify ok.
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache

* The requested URL returned error: 403
* Expire cleared
* Closing connection #0
error: The requested URL returned error: 403 while accessing https://MichaelDrog
alis@github.com/derekerdmann/lunch_call.git/info/refs

fatal: HTTP request failed

Вот версии git и curl, которые у меня есть:

C:\Users\XPherior>git --version
git version 1.7.4.msysgit.0

C:\Users\XPherior>curl --version
curl 7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp
smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz

Ответы [ 50 ]

9 голосов
/ 16 сентября 2011

Код 403 «Запрещен».Сервер увидел ваш запрос и отклонил его.У вас есть разрешение отправить в этот репозиторий?

9 голосов
/ 14 октября 2015

У меня действительно было очень простое решение этой проблемы.Все, что я сделал, это изменил конфигурационный файл git по-другому после клонирования репозитория.URL удаленного источника - это то, что вам нужно отредактировать в файле по умолчанию config .Это должно выглядеть так, как показано ниже

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://*username*@github.com/*username*/*repository*.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
7 голосов
/ 13 марта 2015
  1. Нажмите на свой репозиторий
  2. С правой стороны нажмите «Настройки»
  3. На левой панели параметров нажмите «Соавторы»
  4. Добавьте имя человека, которого вы знаете, в GitHub
  5. Нажмите «Добавить соавторов»

После этого наш «Push to Git» работал нормально.

7 голосов
/ 06 декабря 2012

Просто добавьте ваше имя пользователя в URL следующим образом: https://islam9@github.com/islam9/bootstrap-rtl

пожалуйста, проверьте: http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/

7 голосов
/ 16 сентября 2011

Разобрался.Я клонировал по HTTPS.Установка моих открытых ключей SSH, клонирование по SSH и проталкивание по SSH исправили это.

4 голосов
/ 02 марта 2014

Я столкнулся с той же ошибкой, и причина была глупой - у меня не было привилегий для фиксации в выбранном репозитории.Я не знал, что мне нужно

  1. разветвлять выбранный проект первым
  2. клонировать репозиторий локально
  3. фиксировать свои изменения локально
  4. выдвигать изменения в моемgithub clone
  5. отправляет запрос на извлечение в восходящий поток

, как описано в https://help.github.com/categories/63/articles

4 голосов
/ 12 января 2017

Для тех, у кого отказано в разрешении 403 ошибка при использовании ssh (согласно Xiao ) или http urls попробуйте эти команды

>git config --global --unset-all credential.helper

>git config --unset-all credential.helper

с правами администратора

>git config --system --unset-all credential.helper
3 голосов
/ 06 марта 2012

Для любого любопытного, мой компьютер Mac против lucid vm запускал git 1.7.6 против 1.7.0.4, и точно такой же репозиторий можно было загрузить с моего mac (более нового git), но не с виртуальной машины

Та же версия curl,Возможно, некоторые старые версии git не поддерживают нажатия https?

3 голосов
/ 05 марта 2016

Добавьте имя пользователя как часть URL, и эта ошибка возникает из-за того, что команда git выполняет http вместо https.Поэтому установите URL

git remote set-url origin https://<username>@github.com/Path_to_repo.git

После чего вам будет предложено ввести пароль:

3 голосов
/ 26 августа 2016

Что сработало для меня:

Мой репозиторий был fork и все еще был связан с репо родителей.

git remote -v

Скажет вам, если это ваш репо или нет.

git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git

Позволяет перенастроить его на репо, а затем разрешить нажимать.

...