web-dev-qa-db-fra.com

Git à travers un proxy. Quelle est la cause de l'erreur 407 lors du clonage?

J'essaie d'utiliser Git via un proxy. J'ai essayé de définir les paramètres 'git config --global' de nombreuses manières, mais toujours sans succès lors du clonage de référentiels.

J'ai fait:

git config --global http.proxy http://DOMAIN\\\username:[email protected]:8080
git config --global http.sslverify false
git clone http://github.com/project/project.git

Et j'ai eu:

$ git clone http://github.com/project/project.git folder
Cloning into 'folder'...
error: The requested URL returned error: 407 while accessing http://github.com/project/project.git/info/refs
fatal: HTTP request failed

Alors, comment puis-je déboguer ou activer la connexion à Git pour découvrir pourquoi l'erreur 407 persiste? Y at-il un paramètre dans Git pour montrer verbalement ce qui se passe pour attraper le bon point où l’erreur se produit?

14
John John Pichler

J'ai eu un problème similaire en essayant de git Push à partir d'un client Git Bash sous Windows.

Je l'ai corrigé simplement en en naviguant sur le site en utilisant Chrome.
Puis je suis revenu à Git Bash et cela a fonctionné immédiatement

Pour plus de clarté, l’URL de mon référentiel GIT ressemble à http://[email protected]/myproject.git
Et je suis allé à http://www.cloudforge.com

Je crois comprendre que cela force le proxy à résoudre ce domaine.

9
MonoThreaded

Vous pouvez activer la journalisation des traces pour obtenir plus d'informations sur ce que fait Git. Voici un exemple:

GIT_TRACE=$HOME/trace.log git co master

Vous devez utiliser des chemins absolus si vous souhaitez envoyer la sortie dans un fichier. Sinon, utilisez true ou 1 pour envoyer la sortie en erreur standard; par exemple. GIT_TRACE=1.

7
Dan Cruz

Je pense que vous devriez commencer par l'erreur HTTP: L'erreur HTTP 407 expliquée . Et à partir de là, vous pouvez arriver à la réponse: problème d'erreur de proxy . J'espère que cela pourra aider.

2
Adam Arold

J'ai copié la section proxy http de mon .gitconfig dans https:

[http]
        proxy = http://user:pass@ip_or_Host:port
[https]
        proxy = http://user:pass@ip_or_Host:port

J'ai mis un mot de passe incorrect dans le proxy http juste pour vérifier, et il a été ignoré, c'est donc la section https qui me manquait.

Étrangement, un autre jour qui n'a pas fonctionné. Je ne sais pas si je deviens fou ou s'il y a un autre pas que j'ai oublié. Dans le cas présent, cette méthode de configuration du proxy fonctionnait (avec un .gitconfig effacé) à partir de la ligne de commande:

HTTPS_PROXY="http://user:pass@ip_or_Host:port/" git clone --progress -v "https://github.com/repo" local_folder

Remarques:

  1. Si vous êtes sur un domaine, vous devrez peut-être utiliser la syntaxe DOMAIN\user.
  2. Cela ne fonctionnait pas pour TortoiseGit, mais fonctionnait sous gitbash sous Windows.
1
thinkOfaNumber

Cela fonctionne pour les utilisateurs d'un domaine et derrière un proxy avec authentification et inspection HTTPS . Utilisez les éléments suivants où% 5c est utilisé à la place de "\". c'est à dire. DOMAIN% 5cusername @ proxy: port

Ouvrez la configuration GIT dans l'éditeur en entrant la commande ci-dessous:

git config --global -e     

Ajoutez/mettez à jour les sections suivantes et enregistrez:

[http]
    proxy = http://domain%5cusername:password@proxy:port
    sslVerify = false
[https]
    proxy = http://domain%5cusername:password@proxy:port
    sslVerify = false
1
ederkley

Ce qui suit a résolu le problème pour moi

  1. Faites un clic droit sur le dossier git-> TortoiseGit-> Paramètres-> Réseau
  2. Activer le serveur proxy et le proxy d'entrée, le port, l'utilisateur, le mot de passe
1
Hello Universe

Cette erreur peut se produire si les informations d'identification du proxy sont fournies mais non valides. Dans mon cas, c'était un ancien mot de passe.

1
Matthias Lohr

Votre proxy peut également être défini comme une variable d’environnement. Vérifiez si l'une des variables env http_proxy ou https_proxy est configurée dans votre environnement et supprimez-la.

Utilisation de l'invite de commande

# Linux
export http://user:pass@ip_or_Host:port
export http://user:pass@ip_or_Host:port

# Windows
set HTTP_PROXY = http://user:pass@ip_or_Host:port 
set HTTPS_PROXY = http://user:pass@ip_or_Host:port

changer manuellement 

  • Clic droit sur mon ordinateur
  • sélectionner les propriétés
  • paramètres système avancés advanced-> variables système -> add
1
Prabin Tp

Notez que pour tout Git compris entre 2,8 (février 2016, cinq ans après la question du PO) et Git 2.13 (T2 2017), une configuration de proxy non valide serait silencieusement ignorée (même pas un 407).

Voir commit ae51d91 , commit 5741508 (11 avr. 2017) de Sergey Ryazanov (acteek) .
Aidé de: Jeff King (peff) .
(Fusion par Junio ​​C Hamano - gitster - in commit 6b51cb6 , 24 avril 2017)

http: correction de l'ignorance silencieuse de la mauvaise configuration du proxy

Auparavant, la chaîne d'option http.proxy entière était passée à curl sans tout prétraitement pour que curl puisse se plaindre du proxy non valide configuration.

Après le commit 372370f ("http: utiliser l'API des informations d'identification pour gérer le proxy Authentication", 2016-01-26), si l'utilisateur a spécifié un HTTP non valide proxy dans la configuration, puis l’option d’analyse silencieuse échoue et NULL sera transmis à curl en tant que proxy.
Cela oblige curl à détecter la configuration de proxy à partir de l'environnement, ce qui entraîne l'ignorance de l'option http.proxy.

Résolvez ce problème en vérifiant le résultat d'analyse de l'option proxy. Si l'analyse syntaxique Échec puis affiche un message d'erreur et meurt.
Un tel comportement permet au l’utilisateur pour déterminer rapidement la mauvaise configuration du proxy et la corriger.

0
VonC

Si vous utilisez un pare-feu d'entreprise et que vous utilisez Windows git bash, alors:

Ouvrez le fichier global gitconfig, généralement sous C:\Users\USER_NAME.gitconfig et ajoutez les lignes ci-dessous si elles n'existent pas.

[http]
proxy = http://USER_NAME:PASSWORD@PROXY_URL:PROXY_PORT
sslverify = false
[https]
proxy = http://USER_NAME:PASSWORD@PROXY_URL:PROXY_PORT
sslverify = false

Assurez-vous que votre mot de passe ne contient pas le caractère '@' . Si le problème persiste et que vous utilisez l'URL du proxy à la place de l'adresse IP, procédez comme suit: Ouvrez la commande - 'Clé Windows + R', tapez cmd puis appuyez sur entrée exécuter la commande:

nslookup PROXY_URL

Cela vous donnera des adresses IP. Essayez ces adresses IP dans .giconfig au lieu de PROXY_URL.

0
Rijas Madurakuzhi