Comment faire en sorte que git utilise un serveur proxy?
J'ai besoin de vérifier le code d'un serveur git, il affiche "Demande expiré" à chaque fois. Comment puis-je contourner cela?
Sinon, comment puis-je définir un serveur proxy?
Commande à utiliser:
git config --global http.proxy http://proxyuser:[email protected]:8080
proxyuser
en votre utilisateur proxyproxypwd
par votre mot de passe proxyproxy.server.com
par l'URL de votre serveur proxy8080
par le port proxy configuré sur votre serveur proxySi vous décidez à tout moment de réinitialiser ce proxy et de travailler sans proxy:
Commande à utiliser:
git config --global --unset http.proxy
Enfin, pour vérifier le proxy actuellement défini:
git config --global --get http.proxy
Cela a fonctionné pour moi, sous Windows XP derrière un pare-feu d'entreprise.
En plus de git v1.771 à partir de http://code.google.com/p/msysgit/downloads/list?can=3
$ git config --global http.proxy http://proxyuser:[email protected]:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add Origin https://mygithubuser:[email protected]/repoUser/repoName.git
$ git Push Origin master
proxyuser = l'utilisateur proxy que mon service informatique m'a attribué, dans mon cas, il s'agit du même utilisateur Windows que celui que j'utilise pour me connecter à mon PC, l'utilisateur Active Directory.
proxypwd = le mot de passe de mon utilisateur proxy
proxy.server.com:8080 = le nom du proxy et le port, je l’ai obtenu du Panneau de configuration, Options Internet, Connexions, bouton Paramètres LAN, bouton Avancé de la section Serveur proxy, utilisez le nom de serveur et le port du premier (http) ligne.
mygithubuser = l'utilisateur que j'utilise pour me connecter à github.com
mygithubpwd = le mot de passe de mon utilisateur github.com
repoUser = l'utilisateur propriétaire du référentiel
repoName = le nom du repo
Définissez une variable système nommée http_proxy
avec la valeur ProxyServer:Port
. C'est la solution la plus simple. Respectivement, utilisez https_proxy
comme indiqué par daefu dans les commentaires.
Définir gitproxy (comme le dit sleske) est une autre option, mais cela nécessite une "commande", qui n’est pas aussi simple que la solution ci-dessus.
Références: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
Si la procédure de commande en ligne de commande pour configurer votre serveur proxy ne fonctionne pas, vous pouvez probablement simplement modifier .gitconfig. et ajoutez ceci:
[http]
proxy = http://username:[email protected]:8080
YMMV cependant, cela ne couvre que la première étape de la configuration en ligne de commande. Vous devrez peut-être aussi modifier la configuration du système git et je ne sais pas où ils l'ont caché.
Au lieu d'utiliser git config --global http.proxy address:port
, vous pouvez définir le proxy sur la ligne de commande:
git -c "http.proxy=address:port" clone https://...
L'avantage est que le proxy n'est pas défini de manière permanente. Sous Bash, vous pouvez définir un alias:
alias git-proxy='git -c "http.proxy=address:port"'
Si vous utilisez Ubuntu, procédez comme suit ...
Étape 1: Installer le tire-bouchon
$ Sudo apt-get install corkscrew
Étape 2: écrivez un script nommé git-proxy.sh et ajoutez les éléments suivants
#!/bin/sh
exec corkscrew <name of proxy server> <port> $*
# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*
Étape 3: Rendre le script exécutable
$ chmod +x git-proxy.sh
Étape 4: Configurez la commande proxy pour GIT en définissant la variable d'environnement.
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
Maintenant, utilisez les commandes git, telles que
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Face au même problème en raison de plusieurs fichiers .gitconfig
dans Windows, suivez les étapes ci-dessous pour résoudre le problème
Étape 1: Ouvrez Git BASH
Étape 2: Recherchez .gitconfig
en exécutant la commande suivante:
git config --list --global --show-Origin
Étape 3: Copiez le contenu ci-dessous dans .gitconfig
:
[http]
proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = [email protected]
Essayez de mettre ce qui suit dans le fichier ~/.gitconfig:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
Pour le protocole git (git: // ...), installez socat et écrivez un script tel que:
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
rendez-le exécutable, mettez-le dans votre chemin, et dans votre ~/.gitconfig
, définissez core.gitproxy
avec le nom de ce script.
En plus de ces réponses, j’ai trouvé utile de considérer ces 2 points:
On peut avoir besoin d'appliquer un schéma d'authentification:
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
En outre, généralement avec le schéma d'authentification NTLM, il peut être nécessaire de fournir explicitement le domaine AD.
En bas:
echo %userdomain%
Et mettez à jour le http.proxy en conséquence:
git config --global http.proxy http://DOMAIN\\proxyuser:[email protected]:8080
Quoi qu’il en soit, l’enquête peut être facilitée par l’ajout de journaux CURL:
export GIT_CURL_VERBOSE=1
Il y a quelque chose que j'ai remarqué et que je veux partager ici:
git config --global http.proxy http://<proxy address>:<port number>
La méthode ci-dessus ne fonctionnera pas pour les URL ssh: (c'est-à-dire, [email protected]:<user name>/<project name>.git
)
git clone [email protected]:<user name>/<project name>.git // this will not use the above proxy!
Et les choses ne changeront pas si nous définissons SSH sur le port HTTPS ( https://help.github.com/fr/articles/using-ssh-over-the-https-port ) car il ne fait que changer le port (22 par défaut) la connexion ssh se connecte à.
(Pas un locuteur natif, veuillez affiner mes mots si nécessaire)
Je travaille sous Windows XP au travail (état/gouvernement), j'ai donc fait mes recherches et découvert ceci ici et cela a fonctionné pour moi. J'espère que cela t'aides :)
Variable d’environnement http_proxy
Si vous utilisez un serveur proxy ou un pare-feu, vous devrez peut-être définir la variable d'environnement http_proxy pour pouvoir accéder à certaines URL à partir de la ligne de commande . Exemple: installer ppm pour Perl ou appliquer rpm sous Linux, mettre à jour ubuntu
Définissez la variable http_proxy avec le nom d'hôte ou l'adresse IP du serveur proxy: Http_proxy = http: // [proxy.example.org]
Si le serveur proxy requiert un nom d'utilisateur et un mot de passe, incluez-les sous la forme suivante: Http_proxy = http: // [nom d'utilisateur: [email protected]]
Si le serveur proxy utilise un port autre que 80, indiquez le numéro de port: Http_proxy = http: // [nom d'utilisateur: [email protected]: 8080]
Windows XP
- Ouvrez le Panneau de configuration et cliquez sur l'icône Système.
- Sous l'onglet Avancé, cliquez sur Variables d'environnement.
- Cliquez sur Nouveau dans le panneau Variables système.
- Ajoutez http_proxy avec les informations de proxy appropriées (voir les exemples ci-dessus).
Linux, Solaris ou HP-UX
Définissez la variable d’environnement http_proxy à l’aide de la commande spécifique à votre shell (par exemple, set ou export). Pour que cette modification soit persistante, ajoutez la commande au fichier de profil approprié pour le shell. Par exemple, dans bash, ajoutez une ligne semblable à la suivante à votre fichier .bash_profile ou .bashrc:
- http_proxy = http: // [nom d'utilisateur: mot de passe @ nom d'hôte: port];
- exportation $ http_proxy
Si vous avez tsocks ou proxychains installé et configuré, vous pouvez
$ tsocks git clone <you_repository>
ou
$ proxychains git clone <you_repository>
pour le rendre plus court, j'ai créé un lien de symbole /usr/bin/p
pour proxychains
, afin que je puisse l'utiliser comme ceci
p git clone <you_repository>
et je peux l'utiliser pour proxy toute commande,
p <cmd-need-be-proxied>
à propos, proxychains n'est pas mis à jour depuis longtemps, vous voudrez peut-être essayer proxychians-ng
Configuration du proxy git sur le terminal
si
Définir globalement une fois
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
si vous souhaitez définir un proxy pour un seul projet git .__
//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port
si vous souhaitez afficher les paramètres de proxy actuels
git config --list
si vous voulez supprimer le proxy globalement
git config --global --unset http.proxy
git config --global --unset https.proxy
si vous voulez supprimer le proxy pour une seule racine git
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
Pour les utilisateurs de Windows: si git config
ou set http_proxy=
ne fonctionne pas, cette réponse peut aider:
remplacez le protocole git://
du référentiel git par http://
. Notez que vous devrez tout d’abord définir le http_proxy
.
voici le réglage du proxy
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
Après avoir essayé sans relâche toutes les solutions de cette page, mon travail consistait à utiliser la clé SSH à la place!
J'ai essayé toutes les réponses ci-dessus et rien ne fonctionnait pour moi, car il y avait un problème d'encodage du mot de passe proxy.
Cette commande a fonctionné:
git config --global http-proxy http://[email protected]:PortNumber
N'entrez pas le mot de passe dans votre commande. Il vous sera demandé dynamiquement lorsque vous essayez de vous connecter à n’importe quel dépôt Git.
J'ai suivi la plupart des réponses qui ont été recommandées ici. J'ai d'abord eu l'erreur suivante:
fatal: impossible d'accéder ' https://github.com/folder/sample.git/ ': schannel: next InitializeSecurityContext a échoué: erreur inconnue (0x80092012) - Le fichier La fonction de révocation n'a pas pu vérifier la révocation du fichier certificat.
Ensuite, j'ai essayé la commande suivante de Salim Hamidi
git config --global http.proxy http://proxyuser:[email protected]:8080
Mais j'ai eu l'erreur suivante:
fatal: impossible d'accéder ' https://github.com/folder/sample.git/ ': Code HTTP reçu 407 de proxy après CONNECT
Cela peut arriver si le serveur proxy ne peut pas vérifier le certificat SSL. Nous voulons donc nous assurer que la vérification SSL est désactivée (non recommandé pour les sites non fiables), j'ai donc suivi les étapes suivantes recommandées par @Arpit mais avec de légères modifications:
Assurez-vous d’abord de supprimer tous les paramètres de proxy précédents:
git config --global --unset http.proxy
2. Puis listez et récupérez le contenu de gitconfig
git config --list --show-Origin
3.Dernier mettre à jour le contenu du fichier gitconfig comme suit:
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:[email protected]:8080
sslverify = false
[https]
proxy = http://proxyuser:[email protected]:8080
sslverify = false