Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/02/2013, à 23:03

nelping

[Résolu] Utiliser GIT sur un proxy SSH

Bonjour,

Je ne savais pas trop où poster cette question, donc j'espère que je suis au bon endroit. J'ai regardé pas mal de solutions par internet, mais je n'ai pas réussi à résoudre mon problème.
Je souhaite exécuter un git clone sur un serveur distant. Pour cela, j'utilise la commande suivante : git clone ssh://user@host/repositories/myProject.git. A noter que j'utilise bien le protocole SSH pour faire le clone. Cette commande fonctionne très bien quand la machine distante est accessible depuis le réseau ou je me trouve (sur mon lieu de travail). Seulement, quand je me trouve chez moi, un firewall me bloque l'accès à la machine. J'ai cependant un accès SSH sur une machine qui est situé sur le réseau de mon entreprise, et qui a donc accès à la machine distante. Je souhaiterais donc utiliser cette machine comme proxy pour le git clone. Pour cela, je crée un proxy avec la commande suivante:
ssh -N -D 12345 user@proxyhost

Ce proxy fonctionne correctement puisque quand je le configure sur Firefox, tout fonctionne bien. Seulement, j'ai essayé de le configurer pour GIT, et ça ne fonctionne pas, j'obtiens l'erreur suivante lorsque je lance la commande clone:

$git clone ssh://user@host/repositories/myProject.git
ssh: connect to host host port 22: Connection timed out
fatal: The remote end hung up unexpectedly

Cette erreur apparaît après une vingtaine de secondes et avant que mon mot de passe me soit demandé.

J'ai essayé de configurer comme expliqué à cette adresse : http://www.jones.ec/blogs/a/entry/using … gh_a_socks. J'ai aussi essayé d'autres tuto mais toujours le même résultat.

Je suis sous Ubuntu 12.04. Lorsque je crée mon proxy vers la machine proxyhost, j'utilise une authentification par mot de passe au clavier. Idem lors de la commande git clone.

Merci d'avance pour votre aide!

Dernière modification par nelping (Le 20/02/2013, à 13:04)

Hors ligne

#2 Le 20/02/2013, à 07:05

nesthib

Re : [Résolu] Utiliser GIT sur un proxy SSH

2 solutions :
– utilise ton tunnel socks (option D de ssh) en combinaison avec tsocks (qu'il faut installer et configurer au préalable) :

# on est en local
$ tsocks
# on passe maintenant par le proxy
$ git clone …
$ ^D
# on est à nouveau en local

– utilise une simple redirection de ports :

ssh -L1234:host_git_server:22 user@proxy_host
git clone ssh://user@localhost:1234/repositories/myProject.git

ma préférence (pour une utilisation fréquente) allant pour la première solution smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 20/02/2013, à 07:52

tiramiseb

Re : [Résolu] Utiliser GIT sur un proxy SSH

Salut,

Encore plus simple à l'utilisation, utilise les rebonds SSH...

Par exemple, imaginons que :
- pour te connecter à ton proxy tu vas sur l'adresse "proxy.monentreprise.fr", sur le port 2222 avec l'utilisateur "bibi"
- ton serveur Git a l'adresse 192.168.1.42, tu t'y connectes sur le port standard 22 avec l'utilisateur "moi_git"

Ça donne, dans .ssh/config :

Host proxy_ssh
    User bibi
    HostName proxy.monentreprise.fr

Host serveur_git
    ProxyCommand ssh proxy_ssh nc 192.168.1.42 22
    User moi_git

Ensuite, tu peux utiliser ça de la manière suivante :

git clone ssh://serveur_git/repositories/myProject.git

... ça marche aussi pour t'y connecter direct en SSH, pour faire des scp, etc.


Après, l'authentification par clé simplifie les choses aussi smile

Dernière modification par tiramiseb (Le 20/02/2013, à 08:05)

Hors ligne

#4 Le 20/02/2013, à 08:00

nesthib

Re : [Résolu] Utiliser GIT sur un proxy SSH

Oui, le rebond avec proxycommand fonctionne bien aussi smile
En revanche tu as testé avec git ? Je ne sais pas s'il prend spontanément en compte le fichier .ssh/config

edit : j'ai testé et ça fonctionne, il faut bien mettre le nom de l'utilisateur git (selon comment est configuré le dépôt) pour « moi »

Dernière modification par nesthib (Le 20/02/2013, à 08:04)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 20/02/2013, à 08:04

tiramiseb

Re : [Résolu] Utiliser GIT sur un proxy SSH

Oui ça utilise ce fichier de configuration.

Exemple (ici, outchou est un de mes raccourcis dans .ssh/config) :

sebastien@cao:~$ git clone ssh://outchou/faux_depot
Cloning into 'faux_depot'...
fatal: '/faux_depot' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
sebastien@cao:~$ git clone ssh://fausse_adresse/faux_depot
Cloning into 'faux_depot'...
ssh: Could not resolve hostname fausse_adresse: Name or service not known
fatal: The remote end hung up unexpectedly

... on voit que sur une fausse adresse il ne peut résoudre, et sur une adresse n'existant pas dans le DNS mais définie dans ce fichier de configuration, il y accède (et ne trouve pas le dépôt à la con que j'ai demandé, mais ça montre qu'il l'a bien cherché).


edit : et pourquoi tu poses la question avant de tester, hein ? tongue

Dernière modification par tiramiseb (Le 20/02/2013, à 08:05)

Hors ligne

#6 Le 20/02/2013, à 08:16

nesthib

Re : [Résolu] Utiliser GIT sur un proxy SSH

Flemme au départ, puis reprise de la bonne habitude du TIY (try it yourself) tongue
Et .ssh/config saybien, mangez-en


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 20/02/2013, à 08:25

tiramiseb

Re : [Résolu] Utiliser GIT sur un proxy SSH

Et .ssh/config saybien, mangez-en

OUI !
Vive .ssh/config, et vive ProxyCommand !

J'en ai de très bons souvenirs d'une époque où on gérait un peu plus d'une centaine de serveurs pour des clients différents, avec rebonds sur des firewalls (parfois deux ou trois firewalls l'un derrière l'autre dans des infra très sécurisées)...
Quand on est passés de "mot de passe + connexion manuelle" à "clé SSH + ProxyCommand" ça a fait énormément de bien big_smile

Hors ligne

#8 Le 20/02/2013, à 13:03

nelping

Re : [Résolu] Utiliser GIT sur un proxy SSH

Merci beaucoup pour vos réponses rapides! Je viens de tester avec tsocks, la redirection de ports, et le rebond SSH, tout fonctionne parfaitement. J'ai finalement choisi le rebond SSH car c'est le plus adapté à mon utilisation.

Encore merci!

Hors ligne