Нажатие на Git возвращающий код ошибки 403 фатальный: запрос HTTP не выполнен

Я смог клонировать копию этого репо через 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
[email protected]/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://[email protected]/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
[email protected]/derekerdmann/lunch_call.git/info/refs

fatal: HTTP request failed

Это версии git и завиток, которые у меня есть:

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

Ответ 1

У меня была одна и та же проблема, и я только что выяснил, в чем причина.

Github, похоже, поддерживает только способ ssh читать и записывать репо, хотя способ https также отображал "Read & Write".

Итак, вам нужно изменить конфигурацию репо на вашем ПК на ssh:

  • отредактировать .git/config файл в вашем каталоге репо
  • найдите url= запись в разделе [remote "origin"]
  • измените его с url=https://[email protected]/derekerdmann/lunch_call.git на url=ssh://[email protected]/derekerdmann/lunch_call.git. т.е. изменить все тексты до символа @ на ssh://git
  • Сохраните файл config и закройте. теперь вы можете использовать git push origin master для синхронизации вашего репо на GitHub

Ответ 2

Чтобы определенно войти в систему с помощью протокола https, вы должны сначала установить учетные данные для проверки подлинности на git Удаленный URI:

git remote set-url origin https://[email protected]/user/repo.git

Затем вам будет предложено ввести пароль при попытке git push.

Фактически, это в формате проверки подлинности http. Вы также можете установить пароль:

https://youruser:[email protected]/user/repo.git

Вы должны знать, что если вы сделаете это, ваш пароль github будет храниться в виде открытого текста в вашем каталоге .git, что явно нежелательно.

Ответ 3

Одно небольшое дополнение к Шону.

Вместо того, чтобы вручную редактировать файл .git/config, вы можете использовать команду git remote set-url.

В вашем случае это должно быть:

git remote set-url origin ssh://[email protected]/derekerdmann/lunch_call.git

Мне становится проще и чище, чем общаться с dot файлами.

Ответ 4

Изменить .git/config файл в вашем каталоге репо

Найти url= запись в разделе [remote "origin"]

Измените его с url=https://github.com/rootux/ms-Dropdown.git на https://[email protected]/rootux/ms-Dropdown.git

где USERNAME - ваше имя пользователя github

Ответ 5

Другие ответы, предлагающие переключиться на SSH, пропустили точку. HTTPS поддерживается, но вы должны войти в систему с паролем GITHUB, а не с парольной фразой SSH (что и давало мне ту же самую точную ошибку).

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

По этой причине важно отметить, что многие государственные учреждения (например, моя школа) блокируют SSH, но разрешают HTTPS (это единственная причина, по которой я начал клонирование по HTTPS в первую очередь).

Надеюсь, что кто-то еще будет иметь такую ​​же проблему...

Ответ 6

Такая же ошибка и разрешение на Mac OS X.

Все работало нормально, пока я не создал новую новую учетную запись на GitHub и попытался нажать

$ git push -u origin master

И получил ошибку:

remote: разрешение на NEWUSER/NEWREPO.git отклонено OLDUSER. fatal: невозможно получить доступ к https://github.com/NEWUSER/NEWREPO.git/ ': Запрошенный URL возвратил ошибку: 403

Он должен быть исправлен установкой user.name для глобального или текущего репо

$ git config –-global user.name NEWUSER
$ git config user.name NEWUSER

Но это не так.

Я исправил это, удалив OLDUSER, связанный с GitHub, из приложения Access Keychain Access в разделе "Пароли". Затем команда push успешно прошла.

$ git push -u origin master

ссылка

Ответ 7

Я думаю, что @deepwaters получил правильный ответ для более старых версий. URL-адрес HTTPS должен иметь имя пользователя. Я имел git 1.7.0.4, а git push origin master даже не запрашивал пароль, пока не добавил его.

Ответ 8

Это работает для меня -:

git remote set-url origin https://[email protected]/user/repo.git

Надеюсь, что это поможет

Ответ 10

Если вы используете окна, иногда это может произойти, потому что Windows хранит учетные данные для внешнего репо (в нашем случае github) в своем собственном хранилище. И учетные данные, которые были сохранены там, могут отличаться от тех, которые вам нужны прямо сейчас.

enter image description here

Поэтому, чтобы избежать этой проблемы, просто найдите github в этом хранилище и удалите сохраненные учетные данные. После этого, в то время как нажатие git потребует ваших учетных данных, вы сможете нажать.

Ответ 11

Код 403 "Запрещен". Сервер увидел ваш запрос и отказался. У вас есть разрешение на то, чтобы нажать на этот репозиторий?

Ответ 12

У меня на самом деле было очень простое решение. Все, что я сделал, это изменить конфигурационный файл 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

Ответ 13

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

Ответ 15

  • Нажмите на свой репозиторий
  • С правой стороны нажмите "Настройки"
  • На панели с левой стороны выберите "Соавторы"
  • Добавьте имя человека, которое вы знаете в GitHub
  • Нажмите "Добавить соавторов"

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

Ответ 16

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

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

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

Ответ 17

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

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

>git config --unset-all credential.helper

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

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

Ответ 18

Для кого-то любопытного, моя машина mac vs lucid vm run git 1.7.6 vs 1.7.0.4, и то же самое репо было подталкиваемо от моего mac (новее git), но не VM

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

Ответ 19

измените его на

url=https://[email protected]/derekerdmann/lunch_call.git 

к

url=ssh://[email protected]/derekerdmann/lunch_call.git

Это работает!

Не забывайте "git" перед "@".

Ответ 20

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

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

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

Ответ 21

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

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

git remote -v

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

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

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

Ответ 22

Ни один из приведенных выше ответов не работал для моей учетной записи GitHub на enterprise. Выполните следующие шаги для проталкивания через способ генерации ключей ssh.

Создайте репо, посетив свой git аккаунт.

Создать ключ SSH:

ssh-keygen -t rsa -C "[email protected]"

Скопируйте содержимое файла ~/.ssh/id_rsa.pub в ключи SSH в настройках учетной записи GitHub. Тестовый ключ SSH:

ssh -T [email protected]
clone the repo:
git clone git://github.com/username/your-repository

Теперь перейдите в вашу папку git clone и выполните:

git remote set-url origin [email protected]:username/your-repository.git

Теперь попробуйте отредактировать файл (попробуйте README) и затем выполните:

git add -A
git commit -am "my update msg"
git push -u origin master

Обновление: новая версия git, похоже, рекомендует не иметь никаких файлов при создании нового репо. Отсюда сделать пустой репо.

Ответ 23

Сделайте это для временного исправления

git push -u https://username:[email protected]/username/repo_name.git master

Ответ 24

Я выяснил свою собственную вариацию этой проблемы.

Проблема не заключалась в изменении протокола с https на ssl, но вместо этого, установив глобальное имя пользователя и адрес электронной почты Github! (Я пытался подтолкнуть частный репозиторий.

git config --global user.email "[email protected]"

git config --global user.name "Your full name"

Ответ 25

В Github есть страница, посвященная устранению этой ошибки:

https://help.github.com/articles/https-cloning-errors

В моем случае оказалось, что использование новой версии git (1.8.5.2) решило эту проблему.

Ответ 26

У меня была эта проблема прямо сейчас, и оказалось, что у моего файла server/etc/resolver.conf был неправильный IP-адрес. Могут помочь другим.

Ответ 27

Это случилось со мной, потому что мой коллега случайно отключил репозиторий, из которого этот репозиторий был разветвлен. Просто можно проверить, чтобы исходный репозиторий git (hub) на самом деле все еще существует.

Ответ 28

Это может быть проблема учета. Учетная запись Github владельца собственного репо (вверху) может не быть финансовым. Я видел это, когда срок действия кредитной карты клиента истек.

Ответ 29

то, что сработало для меня, меняется с http на ssh:

git remote rm origin
git remote add origin [email protected]:username/repoName.git

затем проверьте его с помощью git remote -v

Ответ 30

У меня была такая же проблема. Мое дело было: я инициализировал локальный репозиторий git локально, прежде чем я создал его на github, а затем попытался добавить удаленную ветвь. Я решил проблему, изменив порядок действий: создал репо на сайте github, а затем локализовал его. Но это не тот случай, когда им нравится делать все из командной строки, как я.