2010-03-28 13 views
6

Sto cercando di usare il port forwarding ssh per sconfiggere firewall aziendale:bisogno di usare git dietro firewall: cercando tunneling ssh

ssh [email protected]_SERVER -L9418:GIT_SERVER:9418 

e in un altro terminale corro

git clone git://localhost:repositories/project.git 

ma ho la errore seguente:

Initialized empty Git repository in /Users/aboxer/tmp/glucosia/.git/

fatal: Unable to look up localhost (port repositories) (nodename nor servname provided, or not known)

Grazie!

+0

Questo è più appropriato per serverfault. – Ikke

+1

@Ikke: In realtà, la risposta (credo) è del tutto a che fare con la sintassi git URL e StackOverflow è stato ben stabilito come il luogo per le domande su come utilizzare git. – Cascabel

+0

L'ho capito dopo. Ho pensato che fosse su come impostare il firewall. – Ikke

risposta

6

Sono piuttosto sicuro che il vostro problema (o almeno quello che causa questo errore particolare) è qui:

git clone git://localhost:repositories/project.git 

Se si guarda alla list of url notations nell'uomo git push vedrete l'esempio rilevante:

git://host.xz[:port]/path/to/repo.git/ 

con i due punti, si sta utilizzando "repository", come il nome della porta, e git (comprensibilmente) ha problemi di connessione a repository di porta su host locale! Quello che stai cercando è:

git://localhost/path/to/repositories/project.git 

o forse

git://localhost/~user/repositories/project.git 

Edit:

probabilmente dovuto dire questo fin dall'inizio, ma non posso davvero pensare a un motivo per cui avresti bisogno di usare il tunnelling SSH con git. Il suo protocollo di trasporto predefinito è ssh; il protocollo git è realmente presente solo per consentire il recupero dei repository pubblici senza un account. Se si riesce a SSH nella macchina in cui si trova il repository, si può semplicemente prendere via ssh:

git clone ssh://[[email protected]]host.xz/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~user/path/to/repo.git 
+0

sì, la cosa divertente è che quando non sono dietro il firewall, il comando git clone git: // GIT_SERVER: repository/project.git funziona bene, ma git clone git: // GIT_SERVER/repository/progetto .git no – Jacko

+0

@Jacko: Immagino che intendi che rimuovere il colon qui non aiuta? Inoltre, c'è qualche ragione per cui non puoi semplicemente usare 'git clone ssh: // GIT_SERVER/path/to/repositories/project.git'? Il protocollo di trasporto predefinito di Git è ssh ... – Cascabel

+0

Grazie, Jefromi. Il recupero tramite ssh come descritto nella tua modifica funziona correttamente. – Jacko

0

La versione breve della risposta di Vlad Zloteanu:

Impostare il tunnel:

ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , & 

Clone repo

git clone ssh://[email protected]:2000/my_repo.git 
0

qui sono i passi che hanno lavorato per me. Il mio sistema è dietro firewall aziendale e si è unito a dominio:

  • Prima NPM deve essere installato
  • Fiddler deve essere in modalità di esecuzione pure.Fiddler deve essere in esecuzione con 'automaticamente Autentica' sotto 'Regole' abilitato
  • Installare Git tramite il comando:

npm installare git

  • protocollo di aggiornamento da git a https:

git config - URL globale. https://github.com/.insteadOf git: //github.com/

Problemi correlati