2010-03-28 5 views
6

Je suis en train d'utiliser la redirection de port ssh pour vaincre le pare-feu d'entreprise:besoin d'utiliser git derrière le pare-feu: essayer tunnel ssh

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

et dans un autre terminal, j'exécute

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

Mais je reçois la erreur suivante:

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)

Merci!

+0

Ceci est plus approprié pour serverfault. – Ikke

+1

@Ikke: En fait, la réponse (je crois) est entièrement liée à la syntaxe git url, et stackoverflow a été bien établi comme l'endroit où poser des questions sur l'utilisation de git. – Cascabel

+0

Je l'ai réalisé par la suite. Je pensais que c'était sur la façon de configurer le pare-feu. – Ikke

Répondre

6

Je suis assez sûr que votre problème (ou au moins une cause de cette erreur particulière) est ici:

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

Si vous regardez le list of url notations dans git push homme que vous verrez l'exemple pertinent:

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

Avec le côlon, vous utilisez « référentiels » comme le nom du port, et git (compréhensible) a du mal à se connecter à des dépôts de port sur l'hôte local! Qu'est-ce que vous cherchez est:

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

ou peut-être

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

Edit:

Je devrais probablement déjà dit depuis le début, mais je ne peux pas penser en fait d'un raison pour laquelle vous auriez besoin d'utiliser le tunneling SSH avec git. Son protocole de transport par défaut est ssh; le protocole git n'est réellement présent que pour permettre l'extraction de dépôts publics sans compte. Si vous pouvez SSH sur la machine où le dépôt est situé, il vous suffit de chercher 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

ouais, le plus drôle est que quand je ne suis pas derrière le pare-feu, la commande git clone git: // GIT_SERVER: référentiels/project.git fonctionne très bien, mais git clone git: // GIT_SERVER/dépôts/projet .git does not – Jacko

+0

@Jacko: Je suppose que vous voulez dire que l'enlèvement du côlon ici n'aide pas? En outre, y a-t-il une raison pour laquelle vous ne pouvez pas simplement utiliser 'git clone ssh: // GIT_SERVER/chemin/vers/repositories/project.git'? Le protocole de transport par défaut de Git est ssh ... – Cascabel

+0

Merci, Jefromi. Récupérer via ssh comme décrit dans votre édition fonctionne très bien. – Jacko

0

La version courte de la réponse de Vlad Zloteanu:

Mise en place du tunnel:

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

Clone le repo

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

Voici les étapes qui ont travaillé pour moi. Mon système est derrière un pare-feu de l'entreprise et il est joint au domaine:

  • Première NPM doit être installé
  • Fiddler doit être en mode de fonctionnement aussi bien.Fiddler doit être en cours d'exécution avec l'option 'automatiquement Authentifier' sous la rubrique 'Règles' a permis
  • Installer Git via la commande:

NPM installer git

  • protocole de mise à jour de git à https:

git config --global url. https://github.com/.insteadOf git: //github.com/

Questions connexes