it-swarm.com.ru

Нажатие на 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 и 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
564
Mike

Я просто получил ту же проблему и просто выяснил, в чем причина.

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

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

  1. отредактируйте файл .git/config в вашей директории репо
  2. найти url=entry в разделе [remote "Origin"]
  3. измените его с url=https://[email protected]/derekerdmann/lunch_call.git на url=ssh://[email protected]/derekerdmann/lunch_call.git. то есть измените все тексты перед символом @ на ssh://git
  4. Сохраните файл config и выйдите. теперь вы можете использовать git Push Origin master для синхронизации вашего репо на GitHub
768
Xiao

Чтобы определенно иметь возможность войти в систему с использованием протокола https, сначала вы должны установить свои учетные данные authentication для 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, что, очевидно, нежелательно.

384
Thiago Macedo

Одно небольшое дополнение к ответ Шона .

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

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

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

Я считаю это проще и чище, чем возиться с дот-файлами.

103
fetsh

Отредактируйте файл .git/config в вашей директории репо

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

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

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

53
Gal Bracha

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

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

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

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

41
BMB

Та же ошибка и разрешение в 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, из приложения Keychain Access в разделе «Пароли». Затем команда Push прошла успешно.

$ git Push -u Origin master

ссылка

20
zeeawan

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

16
nisah

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

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

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

15
stevensagaar

Обнови свой мерзавец. GitHub ответил на этот вопрос по адресу https://help.github.com/articles/error-the-requested-url-returned-error-403 .

12
gsf

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

9
Nick Veys

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

 enter image description here

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

9
Andrew Gans

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

Догадаться. Я клонировал по HTTPS. Установка моих открытых ключей SSH, клонирование по SSH и проталкивание по SSH исправили это.

7
Mike
  1. Нажмите на свой репозиторий
  2. На правой стороне, нажмите на «Настройки» 
  3. На левой панели параметров нажмите «Соавторы»
  4. Добавьте имя человека, которого вы знаете, в GitHub
  5. Нажмите «Добавить соавторов»

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

7
Krishna

Просто добавьте ваше имя пользователя в URL, например: https: //[email protected]/islam9/bootstrap-rtl

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

7
SMSM

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

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

3
x0v

Правка это с

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

в

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

Оно работает! 

Не забывайте про «мерзавец» перед «@».

3
JimmyDong

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

Создайте репозиторий . Убедитесь, что в нем есть хотя бы один файл (даже только README) Создайте ключ ssh: ssh-keygen -t rsa -C "[email protected]" Скопируйте содержимое файла ~/.ssh/id_rsa. опубликуйте ваши ключи 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 Теперь попробуйте отредактировать файл (попробуйте ПРОЧИТАЙТЕ) и затем сделайте:

git add -A git commit -am "my update msg" git Push -u Origin master

3
chandresh

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

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

git remote -v

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

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

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

3
timbo7io

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

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

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

3
venkat sam

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

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

3
patcon

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

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

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

3
Leos Literak

Для тех, у кого нет прав доступа 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
Moosa Baloch

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

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

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

git config --global user.name "Your full name"
2
Lucas Ou-Yang

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

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

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

2
AndyL

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

1
ftrotter

Клонирование с ssh вместо https решило эту проблему для меня

ssh cloning

1
kilojoules

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

1
gnoll110

После изменения https на http в приложении gitbox это сработало для меня. 

1
Alex Stone

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

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

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

1
Connor Leech

Единственное, что мне помогло, это ответ на другой вопрос:

Знаменитая ошибка Git: «Ошибка пользователю .git запрещена»

Таким образом, если вы похожи на меня с Windows, найдите «Диспетчер учетных данных» и откройте его. Там вы можете найти свои учетные данные Git. Измените имя пользователя (которое вы должны были изменить на другое).

Вы также можете найти его в «Панели управления» - «Учетная запись пользователя» - «Диспетчер учетных данных». 

1
WesternGun

В моем случае ошибка была вызвана тем, что у меня нет разрешений в репозитории.

1
Sebastián Lara

Получил такую ​​же ошибку. Невозможно получить доступ к 403 . В моем случае ни один из этих ответов не сработал. Так что я попробовал ниже, это сработало.

  1. Удалите user.email и user.password из git config
  2. Удалите сохраненные учетные данные из цепочки для ключей.
  3. Перезагрузите систему.
  4. Теперь нажмите на код, спросит у вас пользователя/пароль
  5. Продолжайте, дав пользователю/пасс. 

Код успешно передан 

! Macos!

1
name-it

Иногда в настройках нет ничего плохого, и на github-серверах возникают некоторые проблемы.

https://status.github.com - текущий статус github :)

1
noisy

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

1
RichardW11

В моем случае я получал вышеуказанную ошибку для моего идентификатор электронной почты с github еще не подтвержден . GitHub давал это предупреждение о неподтвержденном сообщении электронной почты.

Проверка электронной почты, а затем нажмите работает для меня.

1
hitesh israni

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

1
Yauhen

Ранее я вошел как другой пользователь github (скажем, user1). Для моей реальной учетной записи github (скажем, user2) я смог клонировать только что созданный репозиторий в github, но я не смог Push-изменения.

Я попробовал все ответы, упомянутые выше, включая удаление учетных данных из диспетчера учетных данных Windows, но ничего не получалось. 

В итоге получилось запустить приложение Windows на github. Перейдите в «Настройки-> Параметры» и вуаля, что вошедший в систему пользователь был user1. Нажмите Выйти из этого пользователя и войдите в систему как требуемый пользователь в этом случае user2

 enter image description here

0
asolanki

Чтобы устранить такую ​​ошибку 403 во время Push-ошибки, вы должны зайти в конфигурационный файл каталога .git и изменить строку:

precomposeunicode = true
[remote "Origin"]
http://[email protected]:abc/xyz.git

Измените строку на эту 

precomposeunicode = true
[remote "Origin"]
ssh://[email protected]/abc/xyz.git

Это решило мою проблему.

0
rahul kumar

Попробуйте создать свой Origin, используя ключ SSH вместо HTTP.

Если вы можете инициировать, используя ключ SSH, тогда URL начинается с:

[email protected]:<YOUR REPO URL>

Теперь вы можете добавлять, фиксировать и нажимать на соответствующую ветку

0
KPavan Kumar

Если ни одно из решений не сработало для вас, быстро прочитайте этот ответ [может быть, ваш случай]:

Для тех из вас, как я, которые прошли через все эти [великие] ответы, но все еще испытывают трудности с выполнением ваших коммитов, потенциально есть еще одна причина неудачи Push. 

Проверьте ваш git-репозиторий (где бы он ни был, GitHub, BitBucket, ...), чтобы увидеть, все ли в порядке. В моем случае, потратив много времени на выяснение, в чем заключается моя проблема (даже обвиняя новую редакцию PyCharm! :)), я понял, что сделал некоторые глупости, и мое репозиторий BitBucket превысил предел 2 ГБ и автоматически переключился на режим только для чтения. репо, и именно поэтому я не мог нажать любой новый коммит. И это точно приводит к тому, что вы получаете ту же ошибку (403: невозможно получить доступ к URL.) 

0
Pedram

Предоставить пользователю доступ для записи.

После предоставления доступа. Потяните код один раз, а затем нажмите его.

0
anil

Еще одна возможная причина в том, что вы могли превысить лимит плана.

Чтобы исправить эту проблему и восстановить доступ для записи в репо, необходимо либо обновить план вашей учетной записи, либо удалить некоторых ваших соавторов.

0
Jacob Nelson

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

0
Promo

Еще одной причиной может быть подтверждение по электронной почте на github.com

Просто войдите на github.com и проверьте, нет ли для вас сообщения, чтобы подтвердить свой адрес электронной почты. Подтвердите, если необходимо.

0
Denis

Если вы используете BitBucket, ваша учетная запись может быть переведена в режим только для чтения по следующим причинам:

  • Мы обновляем наши сегменты хранения и не можем принимать новые данные.
  • Мы внедряем изменения, которые не требуют новых записей.
  • Владелец репозитория должен обновить свою учетную запись, чтобы принять большее количество пользователей.

https://confluence.atlassian.com/display/BITBUCKET/Repositories+in+Read-Only+Mode

0
luckyape

Отредактируйте файл .git/config в вашем каталоге репо

Найти URL = запись в разделе [удаленного "Происхождение"]

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

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

=> Это решение сработало для меня.

0
Vinay Sikarwar

У меня была та же самая проблема с той же самой ошибкой, говорящей мне это 

remote: разрешение пользователю/repo.git запрещено пользователю2.

Проблема с этим заключается в том, что в Windows и Mac он хранится в кеше ключевого пути к Github.

Чтобы исправить это на Mac, просто сделайте это

git credential-osxkeychain erase

Ничего не подскажет на консоли.

Затем просто выполните обычный Push, и он должен позволить вам снова написать свое имя пользователя и пароль от Github.

git commit -m "First Commit"

Для оконного использования см. Ответы выше ^ с сохраненными учетными данными

0
Gastón Saillén