2013-05-07 5 views
6

Der Befehl „git clone https://github.com/user/project.git“ Zeiten verwendet wird, wenn über einen HTTPS-Proxy verwendet wird.git clone Zeitüberschreitung, wenn sie durch HTTPS-Proxy

ich erfolgreich habe git, bevor hinter einem Proxy funktioniert, und haben andere Stackoverflow zu lesen git und Proxy-Nutzung im Zusammenhang. Jetzt habe ich es auf einem Host in meiner derzeitigen Organisation konfiguriert ist, eine nicht-Authentifizierungs-Proxy zu verwenden, aber es ist eine Zeitüberschreitung.

  • der Proxy ist Tintenfisch, nicht-Authentifizierung
  • direkt über TCP-443 verbindet, ist keine Option
  • ich bestätigt habe, dass git den Proxy
  • Git den Befehl berührt ausgibt „CONNECT Github .com: 443 HTTP/1.1"
  • Der Proxy kann die Anfrage und verbindet sich mit github.com auf Port 443
  • libcurl prüft github des cert und stellt eine SSL-Verbindung (SSL_RSA_WITH_RC4_128_SHA)
  • git geht, dort zu sitzen, auf etwas zu warten, die nie
  • Timeout geschieht

Hat jemand dies geschieht, bevor erlebt? Haben Sie irgendwelche Tipps?

Hier ist die Systemversion:

$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.4 (Santiago) 

Hier ist die git-Version und Update-Informationen (neueste RH verfügbar)

$ git --version 
git version 1.7.11.3 

$ sudo yum check-update git  
Loaded plugins: downloadonly, rhnplugin, security 
This system is receiving updates from RHN Classic or RHN Satellite. 

Hier die relevanten Umgebungsvariablen:

$ export | grep http 
declare -x http_proxy="http://proxy.hostname:3128/" 
declare -x https_proxy="http://proxy.hostname:3128/" 

Hier mein .gitconfig (für Redundanz):

$ cat ~/.gitconfig 
[http] 
     proxy = http://proxy.hostname:3128/ 
[https] 
     proxy = http://proxy.hostname:3128/ 

Hier ist ein Beispiel von git läuft (und schließlich Zeitüberschreitung):

$ GIT_CURL_VERBOSE=1 GIT_DEBUG_LOOKUP=1 GIT_TRANSLOOP_DEBUG=1 GIT_TRANSPORT_HELPER_DEBUG=1 git clone https://github.com/user/project.git 2>&1 
Cloning into 'project'... 
Debug: Remote helper: -> capabilities 
Debug: Remote helper: Waiting... 
Debug: Remote helper: <- fetch 
Debug: Got cap fetch 
Debug: Remote helper: Waiting... 
Debug: Remote helper: <- option 
Debug: Got cap option 
Debug: Remote helper: Waiting... 
Debug: Remote helper: <- push 
Debug: Got cap push 
Debug: Remote helper: Waiting... 
Debug: Remote helper: <- 
Debug: Capabilities complete. 
Debug: Remote helper: Waiting... 
* Couldn't find host github.com in the .netrc file; using defaults 
* About to connect() to proxy proxy.hostname 3128 (#0) 
* Trying 10.22.74.73... * Connected to proxy.hostname (x.x.x.x) port 3128 (#0) 
* Establish HTTP proxy tunnel to github.com:443 
> CONNECT github.com:443 HTTP/1.1 
Host: github.com:443 
User-Agent: git/1.7.11.3 
Proxy-Connection: Keep-Alive 
Pragma: no-cache 

< HTTP/1.0 200 Connection established 
< 
* Proxy replied OK to CONNECT request 
* Initializing NSS with certpath: sql:/etc/pki/nssdb 
* CAfile: /etc/pki/tls/certs/ca-bundle.crt 
    CApath: none 
* SSL connection using SSL_RSA_WITH_RC4_128_SHA 
* Server certificate: 
* subject: CN=github.com,O="GitHub, Inc.",L=San Francisco,ST=California,C=US,serialNumber=C3268102,incorporationState=California,incorporationCountry=US,businessCategory=Private Organization 
* start date: May 27 00:00:00 2011 GMT 
* expire date: Jul 29 12:00:00 2013 GMT 
* common name: github.com 
* issuer: CN=DigiCert High Assurance EV CA-1,OU=www.digicert.com,O=DigiCert Inc,C=US 
* Connected to proxy.hostname (x.x.x.x) port 3128 (#0) 

Hier ist der Tintenfisch-Log:

1367957877.701 60148 x.x.x.x TCP_MISS/200 3765 CONNECT github.com:443 - DIRECT/204.232.175.90 - 

Also, was ist denn hier los? Hat jemand irgendwelche Ideen?

+0

können Sie die Ausgabe von 'ssh-vT git @ github.com' einfügen? –

+0

Sie können auch die tolle Post von @AmirHD hier überprüfen: http://Stackoverflow.com/a/21820716/1049572 – Neonigma

Antwort

4

hatte ich genau das gleiche Problem mit git Version 1.7.11.3 von RPMForge Extra-Repository unter CentOS

auf eine ältere Version Downgrading (I mit 1.7.3.4 getestet) löste das Problem.

Um degradieren Sie so etwas wie dieses

yum --showduplicates list git 

Diese zeigen alle verfügbaren Versionen für Paket git

Deinstallieren zuvor installierte git Version tun:

yum remove git 

Installieren Sie eine ältere Version:

yum install git-1.7.3.4 
+0

Danke, Ihre Strategie arbeitete für mich in RHEL6, aber ich entfernte die U/min und installierte eine neuere Version von der Quelle. Ich folgte den RHEL6-Quellcode-Installationsanweisungen: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/collaboration.git.html – chrishiestand

+0

Dies funktionierte auch für mich. Aber ich hoffe natürlich, dass es eine bessere Lösung gibt. Ich habe versucht, die SSL-Zertifikate zu aktualisieren und zeigen Git, sie zu verwenden, funktionierte immer noch nicht. – xcorat

+1

@xcorat Versuchen Sie, wie im obigen Kommentar vorgeschlagen, aus der Quelle zu kompilieren. – Bogdan

Verwandte Themen