Frage

Es gelten folgende Einschränkungen, wie kann ich GitHub von Windows und Unix benutzen?

  • Alle Zugriffe auf das Internet an einen Proxy beschränkt ist
  • Der Proxy erlaubt nur Verbindungen aus auf Port 80 und 443
  • CONNECT-Methode ist nur für 443
  • aktiviert
  • Proxy-Authentifizierung erforderlich ist (NTLM oder Basic)
War es hilfreich?

Lösung

Sehen Sie ein „Verwenden von Github Durch Draconian Proxies (Windows und UNIX)“ von Jeff Tchang (früher von eine andere Stelle ), die Anweisungen für Windows und Unix-Plattformen umfasst, im folgenden zusammengefasst.

Unix

  1. Herunterladen Git.
  2. Herunterladen und Installieren von Korkenzieher .
  3. Bearbeiten oder die Datei ~/.ssh/config erstellen und setzen Sie die folgenden:

    ProxyCommand /usr/bin/corkscrew proxy.example.com 443 %h %p ~/.ssh/myauth
    
    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "/media/truecrypt1/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "/media/truecrypt1/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
  4. Wenn alles richtig eingerichtet sollten Sie in der Lage sein ssh github.com laufen und sehen

      

    Hallo Benutzer! Sie haben erfolgreich authentifiziert, aber GitHub bietet keine Shell-Zugang.
      Der Anschluss an github.com geschlossen.

    Wenn dies nicht funktioniert, kann ssh ssh.github.com und erhalten genau die gleiche Sache laufen. Wenn der erste Befehl nicht funktioniert es bedeutet, dass Sie einen Proxy verwenden, dass die Blöcke CONNECT auf Port 22. Fast blockieren keine Proxies CONNECT auf Port 443, weil Sie für SSL dass benötigen.

Fenster

  1. Download msysgit . Einige Einstellungen:
    • „Run Git von der Windows-Eingabeaufforderung“
    • „Use OpenSSH“ (dies ist sehr wichtig)
    • Wählen Sie Ihre Zeilenende
  2. Herunterladen connect.c . Dieses Tool verdient seinen eigenen Beitrag vor allem wegen seiner völligen Einfachheit. Es spiegelt die Open-Source-Tool Korkenzieher und ist für den Tunnelbau durch Proxies verwendet. Ja der Name des Werkzeugs wirklich heißt „connect.c.“ Für Windows-Anwender, eine vorkompilierte Binary zur Verfügung. Ich legte meinen connect.exe in C:\Windows\connect.exe.
  3. Entscheiden Sie, ob Sie die Windows-cmd.exe verwenden Sachen oder die Cygwin Stil Shell zu tun. Oder beides.
  4. die Cygwin Git Bash-Shell ein.

    Für die Schale Cygwin Stil starten die Git-Symbol und bearbeiten Sie die Datei ~/.ssh/config und stellen Sie sicher, dass die Datei keine Erweiterung hat. Legen Sie die folgenden in dieser Datei, und beachten Sie, wie die Pfade angegeben werden.

    ProxyCommand /c/windows/connect.exe -H username@proxy.example.com:443 %h %p
    
    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "/c/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "/c/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
  5. das Windows cmd.exe Shell ein.

    Angenommen, Sie nicht über die Git Bash-Shell mögen. Sie bevorzugen die cmd.exe-Interpreter.

    • Gehen Sie zu Ihrer Konfigurationsdatei bei C:\Documents and Settings\.ssh\config
    • Erstellen Sie eine Kopie davon oder einen neuen machen. Ich rief meinen config-windows

    Setzen Sie die folgenden in der Datei wieder sorgfältig auf Weg Separatoren und Stile zu zahlen.

    ProxyCommand C:/Windows/connect.exe -H username@proxy.example.com:443 %h %p
    
    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "C:\Keys\GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "C:\Keys\GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    

Für weitere Informationen finden Sie unter den vollständigen Blog Post .

Andere Tipps

[Da meine zusätzlich zu der ersten Antwort oben angegebenen nicht innerhalb von vier Tagen genehmigt bekommen, ich es hier.]

Beachten Sie, dass corkscrew und connect sowie die Standard-Unix-Befehl nc nur die Standardauthentifizierung unterstützt (die insecurely das Passwort überträgt).
tunnel-auth Version 0.04 zusätzlich unterstützt die Authentifizierung verdauen.

Wenn Ihr Proxy erfordert NTLM-Authentifizierung, all diese Befehle sehr schön kombiniert werden können mit cntlm wie folgt:

Wählen Sie einen lokalen Port (beispielsweise 8080, wie in den Beispielen unten), auf dem cntlm zuhören (Durchführen der Benutzerauthentisierung mit dem Proxy und Weiterleiten irgend weitere Pakete zu / von dem Proxy), stellten den Port usw. (beispielsweise in /etc/cntlm.conf) und anstelle des oben angegebenen Proxycommand verwenden (mit der entsprechenden Portnummer eingefügt):

  

Proxycommand Korkenzieher 127.0.0.1 8080% h% p

oder

  

Proxycommand verbinden -H 127.0.0.1:8080% h% p

oder

  

Proxycommand nc -X -x 127.0.0.1:8080% h% p verbinden

oder

  

Proxycommand Tunnel-Auth -p 127.0.0.1:8080 -r% h:% p

war mein Szenario ein wenig anders zu Jeff Tchang der (aber auf seinem Posten basiert), aber könnte hier hilfreich sein.

Alle unseres Arbeitsplatz / corporate-Internetzugang sind über ein nicht-Authentifizierung-Proxy. Ich war in der Lage zu klonen von , aber nicht drücken Github: Laufen

git push -u origin master

zurückkehren würde

ssh: connect to host github.com port 22: Operation timed out
fatal: The remote end hung up unexpectedly

Basierend auf http: //returnbooleantrue.blogspot. com / 2009/06 / using-github-through-drakonische-proxies.html und http://meinit.nl/ssh-through-a-proxy-from-your-apple-mac-os-x und http://www.mtu.net/~engstrom/ssh-proxy.php konnte ich zum Download / install Korkenzieher und die folgende meiner ~ / .ssh / config hinzu:

Host github.com
  User git
  Port 22
  Hostname github.com
  TCPKeepAlive yes
  IdentitiesOnly yes
  ProxyCommand /usr/local/bin/corkscrew proxy.<my-workplace>.com 8080 %h %p 

Einige Punkte zu beachten:

  • ich meinen Arbeitsplatz / corporate private Schlüssel auch mit GitHub: wenn Sie nicht benötigen Sie eine „Identity“ Zeile

  • hinzufügen
  • Im Gegensatz zu Jeff Tchang (und dank mtu.net) Ich brauche nicht zu haben, die "~ / .ssh / myauth" am Ende der Zeile Proxycommand

  • Ich brauche keine ssh.github.com Abschnitt Host einzurichten.

Hoffe, dass diese Hilfe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top