it-source

Git에 푸시 중 오류 코드 403을 반환합니다. HTTP 요청 실패

criticalcode 2023. 4. 26. 23:25
반응형

Git에 푸시 중 오류 코드 403을 반환합니다. HTTP 요청 실패

HTTPS 인증을 통해 이 레포의 복사본을 복제할 수 있었습니다.몇 가지 커밋을 했는데 GitHub 서버로 다시 푸시하고 싶습니다.Windows 7 x 64에서 Cygwin 사용.

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

제가 가지고 있는 깃과 컬의 버전은 다음과 같습니다.

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

저도 방금 같은 문제가 생겨서 원인을 알아냈어요.

Github은 repo를 읽고 쓰는 ssh 방식만 지원하는 것처럼 보이지만 https 방식도 'Read & Write'로 표시됩니다.

따라서 PC의 repo 구성을 ssh 방법으로 변경해야 합니다.

  1. .git/config디렉토리 아래에 있는 파일.repo 입니다.
  2. » url= 섹션에 있는 .[remote "origin"].
  3. 다음에서 변경:
    url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git
    대상:
    url=ssh://git@github.com/derekerdmann/lunch_call.git
    즉, 이전의 모든 텍스트를 변경합니다.@에 대한 .ssh://git
  4. 절약하다config파일을 작성하고 종료합니다.이제 당신은 사용할 수 있습니다.git push origin masterGitHub에 대한 평판을 동기화합니다.

다을사여로면려하를 사용하여 확실히 할 수 하기 .httpsprotocol. 먼저 gitRemoteURI인증 자격 증명을 설정해야 합니다.

git remote set-url origin https://yourusername@github.com/user/repo.git

그러면 암호를 입력하라는 메시지가 표시됩니다.git push.

사실, 이것은 http 인증 형식입니다.암호를 설정할 수도 있습니다.

https://youruser:password@github.com/user/repo.git

이렇게 하면 github 비밀번호가 .git 디렉토리에 일반 텍스트로 저장된다는 것을 알아야 합니다.

션의 대답에 작은 추가 사항이 하나 있습니다.

에 집하는신..git/config할 경우, 할 수 .git remote set-url지휘권

당신의 경우는 다음과 같아야 합니다.

git remote set-url origin ssh://git@github.com/derekerdmann/lunch_call.git

점 파일을 가지고 노는 것보다 더 쉽고 깨끗합니다.

.git/config에 입니다.

» url= 섹션에 있는 .[remote "origin"]

에서변에서 합니다.url=https://github.com/rootux/my-repo.githttps://USERNAME@github.com/rootux/my-repo.git

USERNAME 사용자 이름 github입니다.

SSH로 전환할 것을 제안하는 다른 답변들은 요점을 놓치고 있습니다.HTTPS가 지원되지만 SSH 암호가 아닌 GITHUB 암호로 로그인해야 합니다(같은 오류가 발생했습니다).

저도 같은 문제를 겪고 있었지만 터미널 암호 프롬프트에서 실제 GitHub 암호를 사용하여 구성을 변경하거나 SSH에 의존하지 않고 해결책을 수정했습니다.

이 점을 주목해야 하는 이유는 많은 공공 기관(예: 우리 학교)이 SSH를 차단하지만 HTTPS를 허용하기 때문입니다(이것이 제가 HTTPS를 통해 복제를 시작한 유일한 이유입니다).

같은 문제를 겪고 있는 다른 사람들을 도울 수 있기를 바랍니다.

Windows(윈도우)를 사용하는 경우 Windows(윈도우)가 외부 저장소(우리의 경우 github)에 대한 자격 증명을 자체 저장소에 저장하기 때문에 이 문제가 발생할 수 있습니다.저장된 자격 증명은 현재 필요한 자격 증명과 다를 수 있습니다.

여기에 이미지 설명 입력

이 문제를 방지하려면 이 저장소에서 github을 찾고 저장된 자격 증명을 삭제하면 됩니다.이 후 git를 누르는 동안 자격 증명을 요청하고 를 누를 수 있습니다.

Mac OS X에서도 동일한 오류 및 해상도를 제공합니다.

깃허브에 새 계정을 만들고 푸시를 시도하기 전까지는 모든 것이 잘 작동했습니다.

$ git push -u origin master

오류가 발생했습니다.

원격: NEWUSER/NEWREPO.git가 OLDUSER에게 거부되었습니다. 치명적: 'https://github.com/NEWUSER/NEWREPO.git/' 에 액세스할 수 없습니다.요청한 URL에서 오류가 반환되었습니다. 403

글로벌 또는 현재 repo에 대해 user.name 을 설정하여 수정했어야 합니다.

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

하지만 그렇지 않았습니다.

Passwords 섹션의 Keychain Access 앱에서 GitHub과 관련된 OLDUSER를 삭제하여 수정하였습니다.그런 다음 푸시 명령이 성공적으로 수행되었습니다.

$ git push -u origin master

언급

이것은 나에게 효과가 있습니다 -:

git remote set-url origin https://username@github.com/user/repo.git

도움이 되길 바랍니다.

저는 @deepwaters가 이전 버전의 정답을 맞췄다고 생각합니다.HTTPS URL에는 사용자 이름이 있어야 합니다.와 1.7.0.4를 얻었습니다.git push origin master제가 비밀번호를 추가하기 전까지는 비밀번호를 묻지도 않을 겁니다

깃을 업그레이드합니다.GitHub은 https://help.github.com/articles/error-the-requested-url-returned-error-403 에서 이 질문에 답했습니다.

403 코드는 "금지됨"입니다.서버가 사용자의 요청을 보고 거부했습니다.해당 리포지토리에 푸시할 수 있는 권한이 있습니까?

여기에 많은 답들이 있지만, 이것이 제 문제를 해결한 것입니다.

2020년 7월 이후 HTTPS를 사용하는 경우 Token 인증을 사용하여 GitHub에 액세스해야 합니다.

따라서 프로필 설정 페이지에서 액세스 토큰을 생성하여 암호로 사용해야 합니다.리포지토리에 쓰는 데 필요한 상자를 선택합니다.

이제 다음 명령을 사용하여 사용자 이름을 repo에 추가합니다.

git remote set-url origin https://yourusername@github.com/user/repo.git

누르기를 시도하면 암호를 묻는 메시지가 나타납니다.새로 생성한 토큰을 입력합니다.

여전히 푸시하는 데 문제가 있는 경우 웹 인터페이스를 사용하여 권한 문제를 분리하기 위한 개인 보고서로 포크합니다.인증 문제를 해결하는 데 집중할 수 있습니다.

알았어요.HTTPS를 통해 복제했습니다. 공용 SSH 키를 설정하고 SSH를 통해 복제한 후 SSH를 통해 푸시오버하여 수정했습니다.

동일한 오류가 발생했지만 원인은 어리석었습니다. 선택한 리포지토리에 커밋할 권한이 없습니다.나는 내가 해야 한다는 것을 몰랐습니다.

  1. 선택한 프로젝트를 먼저 포크
  2. 로컬로 리포지토리 복제
  3. 로컬에서 변경사항 커밋
  4. 내 Github 클론에 대한 변경사항 푸시
  5. 업스트림으로 끌어오기 요청

https://help.github.com/categories/63/articles 에 설명된 바와 같이

저는 사실 이것에 대해 아주 간단한 해결책을 가지고 있었습니다.저장소를 복제한 후 git 구성 파일을 다르게 편집한 것이 전부입니다.원격 오리진 URL은 기본 구성 파일에서 편집해야 하는 URL입니다.아래와 같이 보여야 합니다.

[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

임시 수정을 위해 이 작업을 수행

git push -u https://username:password@github.com/username/repo_name.git master

  1. 리포지토리를 클릭합니다.
  2. 오른쪽에서 "설정"을 클릭합니다.
  3. 왼쪽 옵션 패널에서 "공동작업자"를 클릭합니다.
  4. GitHub에서 알고 있는 사용자 이름 추가
  5. 공동작업자 추가를 누릅니다.

그 후 우리의 "Push to Git"은 잘 작동했습니다.

에서 변경합니다.

url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git 

로.

url=ssh://git@github.com/derekerdmann/lunch_call.git

효과가 있습니다!

"@" 앞에 있는 "git"를 잊지 마십시오.

다음과 같은 URL에 사용자 이름을 추가하십시오. https://islam9@github.com /sys9/bootstrap-rtl

확인해주세요: http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/

권한이 거부된 사용자의 경우 ssh(샤오따라) 또는 http URL을 사용하는 동안 403 오류가 발생하면 다음 명령을 사용해 보십시오.

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

>git config --unset-all credential.helper

관리자 권한으로

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

위의 답변 중 어떤 것도 나에게 효과가 없었습니다.enterpriseGitHub 계정.SSH 키 생성 방법을 통해 푸시하려면 다음 단계를 수행합니다.

Git 계정을 방문하여 보고서를 작성합니다.

SSH 키 생성:

ssh-keygen -t rsa -C "your_email@example.com"

~/.ssh/id_rsa.pub 파일의 내용을 GitHub 계정 설정의 SSH 키에 복사합니다.SSH 키 테스트:

ssh -T git@github.com
clone the repo:
git clone git://github.com/username/your-repository

이제 git clone 폴더에 cd를 넣고 다음을 수행합니다.

git remote set-url origin git@github.com:username/your-repository.git

이제 파일 편집(README)을 시도한 후 다음을 수행합니다.

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

업데이트: 새 git 버전은 새 repo가 생성되는 동안 파일이 없는 것이 좋습니다.따라서 빈 레포를 만듭니다.

솔루션은 다음과 같습니다.

Windows의 경우 키는 다음에서 찾을 수 있습니다.

제어판 > 사용자 계정 > 자격 증명 관리자 > Windows 자격 증명 > 일반 자격 증명

그런 다음 Github 키를 제거합니다.

인맥

1-Finder에서 Keychain Access 앱을 검색합니다.

2키체인 액세스에서 github.com 을 검색합니다.

3-github.com 의 "인터넷 비밀번호" 항목을 찾습니다.

4-그에 따라 항목을 편집하거나 삭제합니다.

나에게 효과가 있었던 것:

나의 레포는 포크였고 여전히 부모 레포와 연결되어 있습니다.

git remote -v

당신의 보고서인지 아닌지 알려드리겠습니다.

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

레포로 재구성한 다음 푸시할 수 있습니다.

github에서 403 오류가 발생하면,

토큰을 만들 때 모든 확인란을 선택해야 합니다.

https://github.com/settings/tokens

나는 github 토큰 생성 페이지에 디자인 결함이 있다고 생각합니다.

궁금한 분들은 제 Mac 머신과 Lucid VM의 범위가 1.7.6과 1.7.0.4 사이이며, 제 Mac(새로운 Git)에서도 정확히 동일한 리포를 푸시할 수 있지만 VM은 푸시할 수 없습니다.

같은 컬 버전입니다.아마도 일부 오래된 Git 버전은 https 푸시를 지원하지 않나요?

URL의 일부로 사용자 이름을 추가합니다. git 명령이 https가 아닌 http를 누르고 있기 때문에 이 오류가 발생합니다.그래서 url을 설정합니다.

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

그런 다음 암호를 입력하라는 메시지가 표시됩니다.

관리자 권한을 사용하여 아래 명령을 사용해 보십시오.이 명령으로 문제가 해결되었습니다.문제가 해결되기를 바랍니다.

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

저는 이 문제에 대한 저만의 변형을 알아냈습니다.

문제는 프로토콜을 https에서 ssl로 변경하는 것이 아니라 Github 글로벌 사용자 이름과 이메일을 설정하는 것이었습니다! (개인 저장소로 푸시하려고 했습니다.)

git config --global user.email "your_github_email_@email.com"

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

Github에는 이 오류를 해결하기 위한 전용 페이지가 있습니다.

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

저의 경우 새로운 버전의 git(1.8.5.2)를 사용하면 이 문제가 해결되었습니다.

이러한 솔루션으로 문제를 해결하지 않은 사용자는 다음 스레드를 따릅니다.

"이것은 두 Git 계정이 동일한 컴퓨터에서 사용될 때 발생합니다." https://stackoverflow.com/a/52046047/7861886

Windows 솔루션이 있고 Mac 사용자를 위한 Mac 솔루션을 댓글에 추가했습니다.

언급URL : https://stackoverflow.com/questions/7438313/pushing-to-git-returning-error-code-403-fatal-http-request-failed

반응형