HTTPS aracılığıyla Linux'ta bir github deposunu klonlayamıyorum


87

git clone https://github.com/org/project.gitBir CentOS kutusunda basit bir şey yapmaya çalışıyorum ama şunu alın:

hata: İstenen URL, https://github.com/org/project.git/info/refs'e erişilirken hata: 401 döndürdü

önemli: HTTP isteği başarısız oldu

Benden asla kullanıcı adımı / şifremi sormaz, sadece başarısız olur.

Mac'imde tam olarak aynı aramayı yapabilirim - neyi kaçırıyorum?


Bulutta yeni ve geniş bir CentOS 6.3 kutusu - internet erişimi sorun değil
Yarin

@Yarin: Bunu zaten okuduğunuza inanıyorum : help.github.com/articles/https-cloning-errors Son çare ssh kullanmak olacaktır sanırım. Ayrıca, git'inizin yapılandırıldığı e-postayı kontrol etmek isteyebilirsiniz ... yardımcı olup olmadığından emin değil, ancak github hesabınızla kullandığınız e-postaya karşılık geldiğinden emin olun.
greg0ire

EVET- Bunların hiçbiri sadece dışarı kreps, kelimenin tam anlamıyla linux son- şifresiz istemi içine benim mac terminalinden bir çalışma komutu kopyalama out kontrol
Yarin

Yanıtlar:


210

Cevap basitti ama açık değildi:

Onun yerine:

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

yapmak:

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

veya (güvenli değil)

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

(Daha sonraki durumda, şifrenizin çalıştırıldığında makinenizdeki diğer kullanıcılar tarafından görülebileceğini ps u -u $youve varsayılan olarak kabuğunuzun geçmişinde açık metin olarak görüneceğini unutmayın)

Her 3 yol da Mac'imde çalışıyor, ancak yalnızca son 2'si uzaktaki Linux kutusunda çalışıyordu. (Bunu tekrar düşünürsek, muhtemelen Mac'imde global bir git kullanıcı adımı oluşturduğum içindir, oysa uzak kutuda yapmadım mı? Durum böyle olabilirdi, ancak bir kullanıcı adı isteminin olmaması beni şaşırttı .. .)

Bunu hiçbir yerde görmedim, işte burada.


3
Detaydan bahsettiğiniz için teşekkür ederim git config --global user.name, benim için buydu!
GermanK

Git 1.7.10 itibariyle o Not edecek bir kullanıcı adı için istenir @JERC göre bu artık bir sorun olmalı, böylece ..
Yarin

Aynı sorunu yaşadım (GIT 1.7.1, CentOS5 ile), ancak kullanıcı adını / pwd'yi URL'lere ekleyemedim çünkü özel Bitbucket depolarından paketleri yüklemem gerekiyordu (ve açıkçası kullanıcı adı ve pw bilgisini composer.json / composer.lock içine). Becouse GIT bunları manuel olarak yazmama izin vermedi, zor yoldan gitmem gerekti ve GIT'yi RPM Forge Deposu ( guru4hp.blogspot.hu/2012/08/… ) yardımıyla güncelledim . Burada bulunan @muness kılavuzunu takip ettim: serverfault.com/questions/448814/…
hattila

2
Linux üzerinde git 1.7.1 kullanıyorsanız cevap budur
Louie Miranda

1
1.7.10'dan önceki herhangi bir şey kullanılıyorsa geçerlidir
Amit G

32

SSL verfiy'i manuel olarak devre dışı bırakabilir ve tekrar deneyebilirsiniz. :)

git config --global http.sslverify false

3
Angstrom'lu BeagleBone Black için opkg, ssl doğrulaması yapmak için gerekli sürümü sağlamıyor, bu yüzden çalışmak için bulduğum tek seçenek bu.
Josiah

1
@flickerfly ifadesi geçerlidir ... Angstrom OS ile beaglebone black kullanırken bu yöntemi kullanmak dışında https kullanarak klonlamanın başka bir yolu yoktur.
Funky81

1
Centos üzerinde çalışıyor. Teşekkür ederim.
030

SSL doğrulamasını devre dışı bırakmak biraz tehlikelidir. Kötü niyetli bir ortadaki adam teorik olarak size değiştirilmiş bir git deposu gönderebilir.
Mark Doliner

Ayrıca GitLab'ı kullanırken de bunu yapmak zorunda kaldı
Gerard

12

Git 1.7.10 veya sonraki bir sürümüne sahip olduğunuzdan emin olun, şimdi kullanıcı / şifreyi doğru bir şekilde soruyor. (En son sürümü buradan indirebilirsiniz )


4
Aynı sorunu yaşadım, 1.7.10 sürümüne yükselttiğimde Git Sürümüm 1.7.1 idi, Kullanıcı / Şifreyi Doğru Şekilde soruyor !!, (1.7.1 sürümü 1.7.10 İLE AYNI DEĞİLDİR) Lütfen daha önce sürümleri kontrol edin adanmış.
JERC

10

1.7.1 git sürümünde çalışmak için kullanıcı adı belirtmem gerekiyordu:

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

10

Aynı problemle karşılaştım, hata mesajı ve işletim sistemi bilgisi aşağıdaki gibidir

İşletim sistemi bilgisi:

CentOS 6.5 sürümü (Final)

Linux 192-168-30-213 2.6.32-431.el6.x86_64 # 1 SMP Cum Kasım 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

hata bilgisi:

/Home/techops/pyenv/.git/ içinde başlatılmış boş Git deposu Şifre: hata: https: //waterdrops@github.com/pyenv/pyenv.git/info/refs

önemli: HTTP isteği başarısız oldu

git & curl sürüm bilgisi

git bilgisi: git sürüm 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 Protokoller: tftp ftp telnet dict ldap ldaps http dosyası https ftps scp sftp Özellikler: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

hata ayıklama

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

  • () Github.com 443 numaralı bağlantı noktasına (# 0) bağlanmak üzere
  • 13.229.188.59 deneniyor ... bağlı
  • Github.com (13.229.188.59) 443 (# 0) bağlantı noktasına bağlı
  • NSS'yi certpath ile başlatma: sql: / etc / pki / nssdb
  • CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: yok
  • NSS hatası -12190
  • TLS el sıkışmasında hata, SSLv3 deneniyor ... GET / HTTP / 1.1 Kullanıcı Aracısı: 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 Sunucu: github.com Kabul Et: /

  • Bağlantı kesildi, yeni bir bağlantı yeniden deneniyor

  • 0 numaralı bağlantı kapatılıyor
  • Bu URL'ye başka bir istek gönderin: " https://github.com "
  • () Github.com 443 numaralı bağlantı noktasına (# 0) bağlanmak üzere
  • 13.229.188.59 deneniyor ... bağlı
  • Github.com (13.229.188.59) 443 (# 0) bağlantı noktasına bağlı
  • Önceki el sıkışma hatası nedeniyle TLS devre dışı bırakıldı
  • CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: yok
  • NSS hatası -12286
  • 0 numaralı bağlantı kapatılıyor
  • SSL bağlantı hatası curl: (35) SSL bağlantı hatası

curl, libcurl ve nss'yi yükselttikten sonra git clone tekrar iyi çalışıyor, işte burada. güncelleme komutu aşağıdaki gibidir

sudo yum güncelleme -y nss curl libcurl


Teşekkürler - bu benim için en iyisi git 1.7.1 çalıştıran bir müşterinin eski CentOS 6.6 Sunucusundaki bir
depodaki bitbucket ile çalıştı

Gitlab-ci runner ile bu sorunu yaşıyorum. Yükseltmeden sonra işler iyi.
isca

6

JERC'nin dediği gibi, git'in güncellenmiş bir sürümüne sahip olduğunuzdan emin olun. Yalnızca varsayılan ayarları kullanıyorsanız, git'i yüklemeye çalıştığınızda 1.7.1 sürümünü alacaksınız. En son get sürümünü manuel olarak indirip yüklemenin dışında, bunu yum'a yeni bir depo ekleyerek de gerçekleştirebilirsiniz.

Gönderen tecadmin.net :

Rpmforge deposunu indirin ve kurun:

# 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

O zaman rpmforge-ekstralarını etkinleştirmeniz gerekir. Düzen /etc/yum.repos.d/rpmforge.repove değişim enabled = 0için enabled = 1altındakiler [rpmforge-extras]. Dosya şuna benzer:

### 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

Bunu yaptıktan sonra git'i ile güncelleyebilirsiniz.

yum update git

Neden olduğundan emin değilim, ancak daha sonra rpmforge-extras'ı devre dışı bırakmayı (geri dönün enabled = 0) ve ardından çalıştırmayı öneriyorlar yum clean all.

Büyük olasılıkla sudobu komutlar için kullanmanız gerekecek .


Gerçekten harika cevap! Redhat (RHEL) 6.3'teki sorunlarımı çözdüm.
Maksimum

Repo dosyasını iki kez manuel olarak düzenlemek yerine (önce ekstraları etkinleştirin ve ardından tekrar devre dışı bırakın), sadece koştum yum install --enablerepo=rpmforge-extras gitve bu kadar!
alleen1

6

Bir süre sonra çalışmak için git 1.7.1'i edinebildim.

Öncelikle, SSL'yi devre dışı bırakmak zorunda kaldım, böylece şunu çekebilirim:

git config --global http.sslverify false

O zaman klonlayabilirim

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

Sonra ekledikten ve taahhüt ettikten sonra geri itemedim. Ben de yaptım

git remote -v

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

çekme ve itme adreslerini görmek için:

Bunlar USERNAME @ ile değiştirilmelidir

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

Yine de sizden ekleyebileceğiniz bir şifre soracaktır.

USERNAME:PASSWORD@github.....

Ancak, şifrenizi kolay hırsızlık için açık metin olarak kaydederken bunu yapmayın.

Güvenlik duvarı sınırlamaları nedeniyle SSH'yi çalıştıramadığım için bu kombinasyonu yapmak zorunda kaldım.


4

Bu, bu sorunun en aptalca cevabıdır, ancak GitHub'ın durumunu kontrol edin . Bu beni yakaladı :)


Bugünden gelen mesaj: "Hala çok büyük bir DDoS saldırısını hafifletmek için çalışıyoruz. Site şu anda bazı kullanıcılar tarafından kullanılabilir ancak sitenin çalıştığından emin olana kadar kırmızı durumda kalacağız." GitHub'a kim saldırır? Gerçekten mi?
BenDundee

belli ki homakov değil, DDoS yerine ustalaşmayı taahhüt ediyor
nurettin

3

Aynı sorunu ve hatayı yaşadım. Benim durumumda, https_proxy ayarlanmadı. Https_proxy ortam değişkeninin ayarlanması sorunu çözdü.

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

Misal:

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

Umarım bu birine yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.