git renvoie l'erreur http 407 du proxy après CONNECT

95

J'ai un problème lors de la connexion à github depuis mon PC, en utilisant git. Système Win 7.

J'ai une connexion via un proxy, donc je l'ai spécifié dans les fichiers de configuration git (à la fois dans le dossier général git et dans le dossier git repo). Pour ce faire, je suis entré dans la ligne suivante de mon git bush:

$ git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>

La façon dont cela fonctionne sur d'autres programmes (ex: maven) ressemble à ça:

<username> - my login to our corp system
<userpsw> -my password to corporat system
<proxy> - 10.65.64.77
<port> - 3128

Mais quand j'essaye de pousser ou de cloner mon repo, je reçois

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

J'essaie déjà de saisir non seulement mon nom d'utilisateur mais aussi mon domaine \ nom d'utilisateur, j'ai changé mon mot de passe au cas où il y aurait des problèmes avec les tables de langue de code. Et j'ai même entré un mauvais mot de passe. L'erreur est restée la même.

Lorsque je suis entré dans '10 .65.64.177.com 'et que j'ai essayé de pousser le repo, j'ai reçu:

fatal: unable to access '<repo github link>': Failed connect to github.com:3128; No error

Je ne sais pas quoi essayer.

Olga Chernyavskaya
la source
Duplicata de stackoverflow.com/questions/8561671 ? Voir ma réponse ici sur le proxy https.
thinkOfaNumber
1
J'avais le même problème après avoir mis à jour mon mot de passe Windows sur un environnement AD. Il s'est avéré que je devais simplement redémarrer mon serveur proxy (cntlm).
Aaron C

Réponses:

85

Ce qui a fonctionné pour moi est quelque chose de similaire à ce que propose rohitmohta; dans l'invite de commande DOS standard (pas sur git bash):

première

git config --global http.proxy http://username:password@proxiURL:proxiPort

et dans certains cas aussi

git config --global https.proxy http://username:password@proxiURL:proxiPort

puis

git config --global http.sslVerify false

(Je confirme que c'est nécessaire: si défini sur true, obtenir l'erreur "Problème de certificat SSL: impossible d'obtenir le certificat de l'émetteur local")

dans mon cas, pas besoin de définir la variable all_proxy

et enfin

git clone https://github.com/someUser/someRepo.git
Vincent F
la source
1
Je n'avais pas besoin de "git config --global http.sslVerify false", mais cela dépend probablement de la configuration du proxy.
anre
1
Cette réponse fonctionne et doit être marquée comme correcte.
Nadeem Iqbal
Besoin de le faire dans git bash pas sous DOS pour moi. J'ai remarqué que DOS n'a rien fait! c'est à dire. vérifiez-le en faisant: git config --global -l
theQuestionMan
En quoi la réponse est-elle git config --global http.proxy http://username:password@proxiURL:proxiPortdifférente de la question si ce n'est git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>d'être moins correcte, car il faut spécifier l' hôte proxy , pas l' URL ?
Michel Jung
Fonctionne comme du charme
Polycarp Kavoo
38

Je devais configurer les 4 choses en .gitconfigavec:

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port

Ce n'est qu'alors que le clonage a réussi.

Miroslav Mocek
la source
J'ai essayé toutes les options mentionnées ici et cela ne fonctionne toujours pas pour moi. :(
Xavier Geoffrey
Pourquoi diable tout le monde propose-t-il de contourner la vérification SSL ??? CECI N'EST PAS SÉCURISÉ et pourrait compromettre votre système!
flederwiesel
3
@flederwiesel Parce que les proxys d'entreprise sont mauvais et provoquent toutes sortes de stupidité - comme devoir stocker vos identifiants de domaine en texte clair dans une demi-douzaine d'endroits afin que vous puissiez accéder aux ressources mandatées. Et forcer l'utilisation de certificats racine non sécurisés émis par l'entreprise - ou contourner / ignorer complètement la vérification SSL. C'est assez triste.
ggranum
36

La commande suivante est nécessaire pour forcer git à envoyer les informations d'identification et la méthode d'authentification au proxy:

git config --global http.proxyAuthMethod 'basic'

Source: https://git-scm.com/docs/git-config#git-config-httpproxyAuthMethod

Marijus Ravickas
la source
2
C'est ce qui a fonctionné pour moi enfin! après avoir défini le proxy dans le fichier de configuration.
Dhanesh KM
3
C'était aussi la pièce manquante pour moi. Je vous remercie. (Normalement, je ne cogne pas avec les commentaires «moi aussi», mais cette réponse est assez loin et a besoin de plus d'amour).
ggranum
C'est exactement ce qui manquait!
ivspenna
Cela a fini par être la seule option git config dont j'avais besoin, car ma variable d'environnement https_proxy était définie dans / etc / environment.
Rakurai
36

Peut-être que vous utilisez déjà le paramètre de proxy système - dans ce cas, unset tous les proxies git fonctionnera:

git config --global --unset http.proxy
git config --global --unset https.proxy
Rekinyz
la source
1
Cela a au moins empêché l'erreur d'apparaître et généré une invite pour le nom d'utilisateur / mot de passe. Il semble que le client git ne configure parfois pas correctement le proxy par défaut. J'ai eu la même erreur lors de l'utilisation de SourceTree par Atlassian.
Kelly
Cela a résolu le problème pour moi sur Ubuntu 14.04 après avoir beaucoup gratté la tête!
Tim Ebenezer
2
Cela a également résolu le problème pour moi lors de l'utilisation de SourceTree, merci.
TomSW
J'avais cette erreur en essayant d'installer homebrew ... cela a résolu mon problème. Merci.
joeCarpenter
Merci, c'est la seule chose qui a fonctionné pour moi lorsque je travaille depuis un emplacement distant via un tunnel VPN.
Matt
18

J'avais fait face à un problème similaire, derrière le pare-feu d'entreprise. J'ai fait ce qui suit et j'ai pu cloner le référentiel à l'aide de git shell à partir de mon système exécutant Windows 7 SP1.

  1. Définissez la variable d'environnement «all_proxy» pour votre utilisateur. Requis par curl.

    export all_proxy=http://DOMAIN\proxyuser:[email protected]:8080
    
  2. Définissez la variable d'environnement 'https_proxy' pour votre utilisateur. Requis par curl.

    export https_proxy=http://DOMAIN\proxyuser:[email protected]:8080
    
  3. Je ne sais pas si cela a un impact. Mais j'ai fait ça et ça a marché:

    git config --global http.sslverify false
    
  4. Utilisez https: // pour le clonage

    git clone https://github.com/project/project.git
    

Remarque-1: n'utilisez pas http: //. L'utilisation de cela peut donner l'erreur ci-dessous. Il peut être résolu en utilisant https: //.

 error: RPC failed; result=56, HTTP code = 301

Note-2: évitez d'avoir @ dans votre mot de passe. Peut utiliser $ cependant.

rohitmohta
la source
Vous pouvez utiliser https_proxy = DOMAIN \ "proxyuser: proxypwd" @ proxy.server.com: 8080 avec des guillemets doubles et un @mot de passe.
Vadorequest
1
Je sais qu'il ya une astuce utilisant des guillemets "autour login:password. Mais j'ai en fait essayé et git ignoré les guillemets, donc @le mot de passe le gâche. Si quelqu'un a une solution de contournement, je pense qu'il vaut la peine de le mentionner.
Vadorequest
1
J'ai essayé toutes les commandes suggérées ci-dessus, mais après cela, j'ai commencé à recevoir le code HTTP 407 reçu du proxy après CONNECT.
user130934
1
Vous pouvez encoder en URL tous les caractères spéciaux. Par exemple, @ devient% 40. meyerweb.com/eric/tools/dencoder
Bryant
6

J'ai eu le même problème dans un environnement Windows.

Je viens de résoudre avec NTLM-APS (un serveur proxy d'authentification Windows NT)

Configurez votre proxy NTML et définissez-y Git:

git config --global http.proxy http://<username>:<userpsw>@localhost:<port>
Pinei
la source
3

Eu l'erreur 407 d'Android Studio. J'ai essayé d'ajouter le proxy, mais rien ne s'est passé. J'ai découvert qu'il était lié au certificat d'entreprise, j'ai donc exporté celui de mon navigateur et l'ai ajouté à Git.

Exporter à partir du navigateur Web

Options Internet> Contenu> Certificats> Exporter (Suivez l'assistant, j'ai choisi le format "Base 64 encodé X.509 (.CER))

Dans Git Bash

git config --global http.sslCAInfo c:\Utilities\Certificates\my_certificate

La page suivante était utile https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

Pour ajouter le proxy, comme les autres threads que j'ai utilisés

git config --global http.proxy proxy.company.net:8080
git config --global https.proxy proxy.company.net:8080
Beaumondo
la source
1
Je n'écraserais pas le "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"fichier de clés par défaut mais j'y ajouterais plutôt le certificat de votre entreprise (peut-être dans un fichier séparé comme décrit dans le lien).
jansohn
3

J'étais confronté au même problème, alors j'ai d'abord vérifié mon fichier npm ce que j'avais défini, je l'ai vérifié avec cette commande: -

npm config get proxy

et je découvre que j'ai défini un mauvais proxy et je définis mon proxy de désir comme suit:

npm config set proxy http://xxx.xxx.xxx.4:8080   
npm config set https-proxy http://xxx.xxx.xxx.4:8080

Après ça ça marche pour moi

user1989488
la source
1
Etes-vous sûr de la commande: "npm config ...", car je suppose que ça devrait être "git config ..."
Gaurav Lad
2

Votre mot de passe semble incorrect. Vérifiez à nouveau vos informations d'identification.

néo chine
la source
1

J'ai eu le même problème dans mon organisation.

Après de nombreuses tentatives, je suis arrivé à la solution suivante:

  1. J'ai demandé à l'administrateur système de changer le type d'authentification proxy de Kerberos à NTLM. Je ne sais pas si c'était obligatoire (je suis un ignorant dans cette affaire), mais ma candidature a été approuvée.

  2. Après cela, j'ajoute le paramètre Git

    git config --global http.proxyauthmethod ntlm

Ce n'est qu'après cela que j'ai pu cloner mon référentiel

Кирилл Захаров
la source
1

J'ai eu le même problème aussi et j'ai essayé de le résoudre en définissant explicitement http.proxyAuthMethod sur basic.

Après avoir exécuté une trace pcap entre mon serveur et le proxy, j'ai remarqué que la requête "HTTP CONNECT" envoyée au proxy lors d'un clone git n'a toujours pas d'en-tête "Proxy-Authorization" défini sur basic. Cela était dû à ma version git "1.8.3.1" qui ne prend pas en charge http.proxyAuthMethod.

Après avoir installé une dernière version de git (2.16.6), en utilisant les packages rpm foud ici " https://repo.ius.io/7/x86_64/packages/g/ ", définir http.proxyAuthMethod sur basic a finalement un effet sur git comportement et puis mon clone git a réussi.

J'espère que ça aide

marwaneL
la source
0

Je pense que vous devriez concentrer vos efforts une fois que vous êtes arrivé à ce point:

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

Cela signifie que vous ne vous êtes pas correctement authentifié auprès du proxy. Pouvez-vous vérifier que le mot de passe que vous fournissez à cette étape est correct?

git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>
Slak
la source
0

Ce problème est survenu il y a quelques jours avec mes référentiels Bitbucket. J'ai pu résoudre ce problème en définissant l'URL distante sur http plutôt que sur https.

J'ai également essayé de définir des proxys https dans la ligne de commande et git config mais cela n'a pas fonctionné.

$ git pull
fatal: unable to access 'https://[email protected]/sacgf/x.git/': Received HTTP code 407 from proxy after CONNECT

Notez que nous utilisons https:

$ git remote -v
origin  https://[email protected]/sacgf/x.git (fetch)
origin  https://[email protected]/sacgf/x.git (push)

Remplacez l'url https par l'URL http:

$ git remote set-url origin http://[email protected]/sacgf/x.git
$ git pull
Username for 'https://bitbucket.org': username
Password for 'https://[email protected]': 
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 43 (delta 31), reused 0 (delta 0)
Unpacking objects: 100% (43/43), done.
From http://bitbucket.org/sacgf/x
   a41eb87..ead1a92  master     -> origin/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to ead1a920caf60dd11e4d1a021157d3b9854a9374.
d
Dave Lawrence
la source
0

J'ai rencontré cette erreur en raison de mon réseau d'entreprise utilisant un proxy sur site et un deuxième proxy (complètement différent) lorsque VPN de l'extérieur. J'ai été configuré à l'origine pour le proxy sur site, j'ai reçu l'erreur, puis j'ai dû mettre à jour ma configuration pour utiliser le proxy alternatif, hors site, lorsque je travaillais ailleurs.

Shawn
la source
0

J'ai eu le même problème et j'ai résolu avec les étapes ci-dessous:

** Ajouter les détails du proxy dans git **

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port
Sairam Kukadala
la source
0

Cette configuration fonctionne dans ma configuration:

[http]
    proxy = <your proxy>
[https] proxy = <your proxy>
[http]
    sslVerify = false
[https]
    sslVerify = false   
[credential]
    helper = wincred 
meol
la source
0

Avoir le même problème lors de l'utilisation de sourcetree La raison était peut-être d'activer ou de désactiver le proxy système alors que l'arborescence de source était ouverte. Pour une raison quelconque, cela a été écrit dans le fichier de configuration d'un projet. Cela peut être facilement supprimé sur sourcetree par "Paramètres" -> "Modifier le fichier de configuration". Supprimez-le simplement sous http

Ska
la source
0

J'ai rencontré le même problème lors de l'utilisation de Git Bash. Quand j'ai fait la même chose dans l'invite de commande, cela fonctionnait parfaitement.

Daniel
la source
0

FYI pour l'information de tous

Cela aurait été une solution appropriée pour résoudre l'erreur suivante

Received HTTP code 407 from proxy after CONNECT

Les commandes suivantes devraient donc être nécessaires

git config --global http.proxyAuthMethod 'basic'
git config --global https.proxy http://user:pass@proxyserver:port

Ce qui générerait la configuration suivante

$ cat ~/.gitconfig
[http]
        proxy = http://user:pass@proxyserver:port
        proxyAuthMethod = basic
maigre
la source
0

La suppression de "@" du mot de passe a fonctionné pour moi et de toute façon ne garde jamais @ dans votre mot de passe, cela vous posera des problèmes avec maven et une installation ultérieure

Codiee
la source