web-dev-qa-db-fra.com

Erreur Git: fatale: impossible de connecter un socket (argument non valide)

J'ai msysGit (Git sous Windows) qui fonctionne très bien sur ma machine domestique, mais au travail, où nous sommes derrière un proxy Microsoft ISA, j'obtiens l'erreur suivante lorsque je fais un git cloner:

H:\>git clone git://github.com/akitaonrails/vimfiles.git
Initialized empty Git repository in H:/vimfiles/.git/
github.com[0: 65.74.177.129]: errno=Invalid argument
fatal: unable to connect a socket (Invalid argument)

J'ai essayé de définir la variable d'environnement http_proxy sur:

http://our-proxy-server:8088

J'ai défini la directive de configuration git http.proxy:

git config --global http.proxy http://our-proxy-server:8088

Aucun des éléments ci-dessus ne fait de différence.

Faire un clone git avec http:// au lieu de git:// donne ceci:

H:\>git clone http://github.com/akitaonrails/vimfiles.git
Initialized empty Git repository in H:/vimfiles/.git/
fatal: http://github.com/akitaonrails/vimfiles.git/info/refs download error - The    requested URL returned error: 407

407 est bien sûr une erreur d'authentification.

Donc ma question est: quelqu'un a-t-il réussi à faire fonctionner git derrière un proxy, en particulier un proxy ISA? Je ne sais pas si cela vaudra la peine de poursuivre cela. Toute aide très appréciée .

Merci!

47
Charles Roper

J'ai eu exactement la même erreur; mais le ~/.gitconfig fichier de configuration global était la clé.

Si vous avez un proxy avec authentification, vous devez le mettre:

git config --global http.proxy http://login:password@our-proxy-server:8088

Et ça marche juste (avec 'git clone http: ')

Exemple de blog détaillant la même configuration: clone GIT sur HTTP: qui savait?


S'il échoue toujours en 407, il pourrait être lié à un problème avec git-fetch perd des jetons d'authentification sur le deuxième HTTP GET . Un version plus récente de libcurl pourrait être nécessaire.


Mise à jour de janvier 2011: jbustamovej mentionne dans sa réponse (votée) son article de blog " GitHub Behind Corporate Proxy ", qui ajoute ceci:

Il est important de noter que si votre connexion a une barre oblique inverse , comme dans domain\login, vous devez échapper à la barre oblique inverse , comme dans:

git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088
60
VonC

Même après avoir configuré le proxy, il se peut que vous ne puissiez pas vous connecter, car le proxy interdit le trafic du protocole git. Dans ce cas, vous pouvez essayer d'utiliser "http" au lieu de "git"

H:> clone git http://github.com/akitaonrails/vimfiles.git

De plus, si vous utilisez un fichier de configuration de proxy automatisé (.pac), ouvrez-le simplement dans un éditeur de texte. C'est un langage de script assez simple à suivre, avec un tas de conditions à rediriger vers le proxy le plus efficace. Trouvez celui qui autorise le trafic à usage général (généralement, le dernier proxy configuré) et configurez-le comme mentionné dans le commentaire ci-dessus.

19
shiva

Avez-vous un proxy SOCKS? Si c'est le cas, vous pouvez essayer FreeCap pour améliorer votre connexion git. J'utilise git de cette façon depuis un moment.

Sinon, essayez toujours FreeCap. IIRC, il pourrait peut-être utiliser des proxy http, mais je n'ai pas essayé.

EDIT: Je socksify habituellement cmd.exe en utilisant FreeCap, et à partir de là (presque) tous les programmes cmdline que je démarre à partir de cette session sont également socksified. C'est pourquoi j'ai recommandé Free Cap, car SocksCap (une autre alternative) ne fonctionne pas de cette façon.

Quant à l'utilisation de http.proxy, pour une raison quelconque, cela n'a jamais fonctionné pour moi avec la version mingw et les proxy http de mon entreprise.

3
Marko

J'ai réussi à le faire fonctionner via une route très compliquée. Voici comment:

  1. J'ai OpenSSH en cours d'exécution sur ma machine à domicile (une boîte Vista) en cours d'exécution sous Cygwin
  2. J'utilise Bitvise Tunnelier Tunneling dynamique via proxy SOCKS/HTTP CONNECT intégré .
  3. J'utilise ensuite Freecap (merci Marko) pour "SOCKify" GIT-GUI. Malheureusement, vous devez configurer chaque .exe individuellement et les exécuter à partir de Freecap, de sorte que vous ne pouvez pas universellement SOCKify tous les outils de ligne de commande git. Vous pouvez configurer des commandes de ligne de commande explicites dans Freecap, mais vous devez les configurer individuellement, ce qui va à l'encontre de l'objectif. C'est pourquoi je viens de configurer GIT-GUI dans ce système élaboré et fou

Étonnamment, cela semble fonctionner, même si je n'ai pas encore tout testé. Ça va cloner, certainement, ce qui est un début.

Si quelqu'un a une meilleure solution, je suis à l'écoute.

2
Charles Roper

Voici ce qui a fonctionné pour moi:

git config --global http.proxy http://login:password@PROXY_SERVER:PORT
git config --global http.sslVerify false
1
Vlad Bezden

Python 2.7 et ntlmaps ont fonctionné pour moi après avoir obtenu 407 erreurs et autres indésirables de GitHub.

.gitconfig:

[http]
      proxy = http://127.0.0.1:5865
1
Matt Hinze

J'ai eu ce problème sur windows7:

$ git clone git://github.com/facebook/php-sdk.git
Initialized empty Git repository in c:/Users/Jay/temp/php-sdk/.git/
github.com[0: 207.97.227.239]: errno=No error
fatal: unable to connect a socket (No error)

Finalement réalisé que c'était AVG logiciel antivirus en cours d'exécution. J'ai désactivé le "bouclier résident" dans AVG et fonctionne comme un charme maintenant.

$ git clone git://github.com/facebook/php-sdk.git
Initialized empty Git repository in c:/Users/Jay/temp2/php-sdk/.git/
remote: Counting objects: 223, done.
remote: Compressing objects: 100% (179/179), done.
emote: Total 223 (delta 84), reused 0 (delta 0)
Receiving objects: 100% (223/223), 37.32 KiB, done.
Resolving deltas: 100% (84/84), done.
0
Jay