HTTPS를 통해 Linux에서 github 저장소를 복제 할 수 없습니다.


87

git clone https://github.com/org/project.gitCentOS 상자 에서 간단한 작업을 시도하고 있지만 다음을 얻습니다.

오류 : 요청 된 URL에서 오류를 반환했습니다 : https://github.com/org/project.git/info/refs에 액세스하는 동안 401

치명적 : HTTP 요청 실패

내 사용자 이름 / 암호를 묻는 메시지가 표시되지 않고 실패합니다.

Mac에서 똑같은 전화를 걸 수 있습니다. 문제가 없습니다. 무엇을 놓치고 있습니까?


클라우드에 새로 열린 CentOS 6.3 상자
Yarin

@Yarin : 나는 당신이 이미 이것을 읽었다 고 믿습니다 : help.github.com/articles/https-cloning-errors 마지막 수단은 ssh를 사용하는 것입니다. 또한 git이 구성된 이메일을 확인하고 싶을 수도 있습니다. 도움이되는지 확실하지 않지만 github 계정에서 사용하는 이메일과 일치하는지 확인하십시오.
greg0ire

그래-그 누구도 체크 아웃-말 그대로 내 mac 터미널에서 리눅스 터미널로 작업 명령을 복사
Yarin

답변:


210

대답은 간단했지만 분명하지는 않았습니다.

대신에:

git clone https://github.com/org/project.git

하다:

git clone https://username@github.com/org/project.git

또는 (안전하지 않음)

git clone https://username:password@github.com/org/project.git

(나중의 경우에는 실행을 통해 컴퓨터의 다른 사용자가 비밀번호를 볼 수 있으며 ps u -u $you기본적으로 셸 기록에 일반 텍스트로 표시됩니다)

세 가지 방법 모두 내 Mac에서 작동하지만 마지막 2 개만 원격 Linux 상자에서 작동했습니다. (이것을 다시 생각해 보면, 아마도 Mac에 글로벌 git 사용자 이름이 설정되어 있었지만 원격 상자에서는 설정하지 않았기 때문일 것입니다. .)

이 문서는 어디에서도 본 적이 없으므로 여기에 있습니다.


3
git config --global user.name세부 사항 을 언급 해주셔서 감사합니다 .
GermanK 2013 년

자식 1.7.10의 당신이주의 , 사용자 이름 입력하라는 메시지가 @JERC에 따라 이 더 이상 문제가 발생하지 않습니다 그래서 ..
Yarin

동일한 문제 (GIT 1.7.1, CentOS5 사용)가 있었지만 URL에 사용자 이름 / 비밀번호를 추가 할 수 없었습니다. 개인 Bitbucket 저장소에서 번들을 설치해야했기 때문에 사용자 이름 / 비밀번호를 추가 할 수 없었습니다. pw 정보를 composer.json / composer.lock에 추가). GIT는 수동으로 입력하는 것을 허용하지 않았기 때문에 힘들게 가야했고 RPM Forge Repository ( guru4hp.blogspot.hu/2012/08/… ) 의 도움으로 GIT를 업데이트했습니다 . 나는 여기에있는 @muness '가이드를 따랐다 : serverfault.com/questions/448814/…
hattila

2
당신이 리눅스에 자식 1.7.1을 사용하는 경우이 답이다
루이 미란다

1
1.7.10 이전의 것을 사용하는 경우 적용 가능
Amit G

32

SSL 확인을 수동으로 비활성화하고 다시 시도 할 수 있습니다. :)

git config --global http.sslverify false

3
Angstrom이있는 BeagleBone Black의 경우 opkg는 SSL 확인을 수행하는 데 필요한 버전을 제공하지 않으므로 이것이 내가 작동하는 유일한 선택입니다.
Josiah

1
@flickerfly 문은 유효합니다. Angstrom OS에서 beaglebone black을 사용할 때이 방법을 사용하는 경우를 제외하고 https를 사용하여 복제하는 다른 방법은 없습니다.
Funky81 2014 년

1
Centos에서 작동합니다. 감사합니다.
030

SSL 확인을 비활성화하는 것은 약간 위험합니다. 악의적 인 중간자 (man-in-the-middle)는 이론적으로 수정 된 git 저장소를 보낼 수 있습니다.
Mark Doliner 2014 년

GitLab 사용하는 경우 또한이 작업을 수행했다
제라드

12

git 1.7.10 이상이 있는지 확인하십시오. 이제 사용자 / 암호를 올바르게 입력하라는 메시지가 표시됩니다. ( 여기 에서 최신 버전을 다운로드 할 수 있습니다. )


4
같은 문제가 있었는데, 1.7.10으로 업그레이드했을 때 내 자식 버전이 1.7.1이었는데 이제 사용자 / 비밀번호가 올바르게 표시됩니다 !!, (버전 1.7.1은 1.7.10과 동일하지 않습니다) 이전 버전을 확인하십시오 헌신적으로.
JERC

10

1.7.1 git 버전에서 작업하려면 사용자 이름을 지정해야했습니다.

git remote set-url origin https://username@github.com/org/project.git

10

같은 문제를 만났는데 오류 메시지와 OS 정보는 다음과 같습니다.

OS 정보 :

CentOS 릴리스 6.5 (최종)

Linux 192-168-30-213 2.6.32-431.el6.x86_64 # 1 SMP 11 월 22 일 금요일 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

오류 정보 :

/home/techops/pyenv/.git/에서 빈 Git 저장소를 초기화했습니다. 비밀번호 : 오류 : https : //waterdrops@github.com/pyenv/pyenv.git/info/refs에 액세스하는 동안

치명적 : HTTP 요청 실패

git & curl 버전 정보

git info : git 버전 1.7.1

curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl / 7.19.7 NSS / 3.14.0.0 zlib / 1.2.3 libidn / 1.18 libssh2 / 1.4.2 프로토콜 : tftp ftp telnet dict ldap ldaps http 파일 https ftps scp sftp 기능 : GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

디버깅

$ curl --verbose https://github.com

  • github.com 포트 443 (# 0)에 연결 ()하려고합니다.
  • 13.229.188.59 시도 중 ... 연결됨
  • github.com (13.229.188.59) 포트 443 (# 0)에 연결됨
  • certpath로 NSS 초기화 : sql : / etc / pki / nssdb
  • CA 파일 : /etc/pki/tls/certs/ca-bundle.crt CA 경로 : 없음
  • NSS 오류 -12190
  • TLS 핸드 셰이크 오류, SSLv3 시도 중 ... GET / HTTP / 1.1 User-Agent : curl / 7.19.7 (x86_64-redhat-linux-gnu) libcurl / 7.19.7 NSS / 3.14.0.0 zlib / 1.2.3 libidn / 1.18 libssh2 / 1.4.2 호스트 : github.com 수락 : /

  • 연결이 끊어졌습니다. 새로 연결을 다시 시도합니다.

  • 연결 닫기 # 0
  • 이 URL에 대한 다른 요청을 발행 하십시오 : ' https://github.com '
  • github.com 포트 443 (# 0)에 연결 ()하려고합니다.
  • 13.229.188.59 시도 중 ... 연결됨
  • github.com (13.229.188.59) 포트 443 (# 0)에 연결됨
  • 이전 핸드 셰이크 실패로 인해 TLS가 비활성화되었습니다.
  • CA 파일 : /etc/pki/tls/certs/ca-bundle.crt CA 경로 : 없음
  • NSS 오류 -12286
  • 연결 닫기 # 0
  • SSL 연결 오류 컬 : (35) SSL 연결 오류

curl, libcurl 및 nss를 업그레이드 한 후 git clone이 다시 정상적으로 작동하므로 여기에 있습니다. 업데이트 명령은 다음과 같습니다.

sudo yum 업데이트 -y nss curl libcurl


감사합니다 -이 자식 1.7.1 실행 6.6 서버 클라이언트의 이전에 CentOS에서의 repo에의 bitbucket와 나를 가장 일
에릭 Kigathi을

gitlab-ci 주자 에이 문제가 있습니다. 업그레이드 후 작업은 괜찮습니다.
isca

6

JERC가 말했듯이 업데이트 된 버전의 git이 있는지 확인하십시오. 기본 설정 만 사용하는 경우 git을 설치하려고하면 1.7.1 버전이 표시됩니다. 최신 버전의 get을 수동으로 다운로드하고 설치하는 것 외에 yum에 새 저장소를 추가하여이를 수행 할 수도 있습니다.

에서 tecadmin.net :

rpmforge 저장소를 다운로드하여 설치하십시오.

# use this for 64-bit
rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm'
# use this for 32-bit
rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm'

# then run this in either case
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

그런 다음 rpmforge-extras를 활성화해야합니다. 수정 /etc/yum.repos.d/rpmforge.repo하고 아래로 변경 enabled = 0합니다 . 파일은 다음과 같습니다.enabled = 1[rpmforge-extras]

### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0 ####### CHANGE THIS LINE TO "enabled = 1" #############
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

이 작업을 완료하면 다음으로 git을 업데이트 할 수 있습니다.

yum update git

이유는 잘 모르겠지만 rpmforge-extras를 비활성화 (으로 다시 변경 enabled = 0) 한 다음 실행하는 것이 좋습니다 yum clean all.

대부분의 경우 sudo이러한 명령 을 사용해야 합니다.


정말 좋은 대답입니다! Redhat (RHEL) 6.3에서 내 문제를 해결했습니다.
Max

수동으로 repo 파일을 두 번 편집하는 대신 (먼저 추가 기능을 활성화 한 다음 다시 비활성화), 방금 실행 yum install --enablerepo=rpmforge-extras git하고 그만 두었습니다!
alleen1

6

나는 꽤 오랜 시간 후에 git 1.7.1을 작동시킬 수 있었다.

첫째, SSL을 비활성화해야 다음을 가져올 수 있습니다.

git config --global http.sslverify false

그런 다음 복제 할 수 있습니다.

git clone https://github.com/USERNAME/PROJECTNAME.git

그런 다음 추가하고 커밋 한 후 뒤로 밀 수 없었습니다. 그래서 나는했다

git remote -v

origin  https://github.com/USERNAME/PROJECTNAME.git (fetch)
origin  https://github.com/USERNAME/PROJECTNAME.git (push)

당기기 및 밀기 주소보기 :

USERNAME @로 수정해야합니다.

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

계속해서 추가 할 수있는 암호를 입력하라는 메시지가 표시됩니다.

USERNAME:PASSWORD@github.....

그러나 쉽게 도용 할 수 있도록 암호를 일반 텍스트로 저장하므로 그렇게하지 마십시오.

방화벽 제한으로 인해 SSH가 작동하지 못하기 때문에이 조합을 수행해야했습니다.


4

이것은이 질문에 대한 가장 멍청한 대답이지만 GitHub 상태를 확인하십시오 . 이것은 나를 얻었다 :)


오늘의 메시지 : "우리는 여전히 대규모 DDoS 공격을 완화하기 위해 노력하고 있습니다.이 사이트는 현재 일부 사용자가 사용할 수 있지만 사이트가 정상 상태임을 확신 할 때까지 빨간색 상태로 유지됩니다." 누가 GitHub를 해킹하나요? 정말?
BenDundee

분명하지 homakov, 그는 대신 DDoS 공격의 마스터 커밋
nurettin

3

나는 같은 문제와 오류가 있었다. 제 경우에는 https_proxy가 설정되지 않았습니다. https_proxy 환경 변수를 설정하면 문제가 해결되었습니다.

$ export https_proxy=https://<porxy_addres>:<proxy_port>

예:

$ export https_proxy=https://my.proxy.company.com:8000

이것이 누군가를 돕기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.