Нажатие на 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
Надеюсь, что это поможет
Ответ 9
Обновите свой git. Ответ на этот вопрос GitHub ответил на https://help.github.com/articles/error-the-requested-url-returned-error-403.
Ответ 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.
Ответ 14
Просто добавьте свое имя пользователя в URL-адрес:
https://[email protected]/islam9/bootstrap-rtl
проверьте:
http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/
Ответ 15
- Нажмите на свой репозиторий
- С правой стороны нажмите "Настройки"
- На панели с левой стороны выберите "Соавторы"
- Добавьте имя человека, которое вы знаете в GitHub
- Нажмите "Добавить соавторов"
После этого наш "Push to Git" работал нормально.
Ответ 16
Я столкнулся с той же ошибкой, и причина была глупой - у меня не было привилегий для фиксации в выбранном репозитории. Я не знал, что я должен
- сначала выберите выбранный проект
- локально клонировать репозиторий
- зафиксировать мои изменения локально
- нажмите изменения в моем клоне github
- запрос тянуть запрос к апстрим
как описано в 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, а затем локализовал его. Но это не тот случай, когда им нравится делать все из командной строки, как я.