Comment faire en sorte que Git utilise un serveur proxy?
Je dois extraire le code d'un serveur Git, mais il affiche "Request timed out" à chaque fois. Comment puis-je contourner cela?
Sinon, comment puis-je configurer un serveur proxy?
Comment faire en sorte que Git utilise un serveur proxy?
Je dois extraire le code d'un serveur Git, mais il affiche "Request timed out" à chaque fois. Comment puis-je contourner cela?
Sinon, comment puis-je configurer un serveur proxy?
Réponses:
Commande à utiliser:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
pour votre utilisateur proxyproxypwd
votre mot de passe proxyproxy.server.com
l'URL de votre serveur proxy8080
le port proxy configuré sur votre serveur proxyNotez que cela fonctionne pour les référentiels http et https.
Si 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
%40
en remplacement de la @
chaîne in username / password, bien que je ne l'ai pas testé moi-même. J'espère que cela aide. :-)
Cela a fonctionné pour moi, dans Windows XP derrière un pare-feu d'entreprise.
Je n'ai pas eu à installer de proxy local ou tout autre logiciel en plus de git v1.771 depuis http://code.google.com/p/msysgit/downloads/list?can=3
$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master
proxyuser = l'utilisateur proxy qui m'a été attribué par notre service informatique, dans mon cas, c'est le même utilisateur Windows 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 et le port du proxy, je l'ai obtenu à partir du Panneau de configuration, Options Internet, Connexions, bouton Paramètres LAN, bouton Avancé dans la section Serveur proxy, utilisez le nom du serveur et le port sur la première ligne (http) .
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
git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt
ainsi que les certificats téléchargés comme décrit dans simplicidade.org/notes/archives/2011/06/… (merci à: stackoverflow.com/a/7206627/98528 ) l'ont fait pour moi!
git://
protocole.
Définissez une variable système nommée http_proxy
avec la valeur de ProxyServer:Port
. C'est la solution la plus simple. Respectivement, utilisez https_proxy
comme daefu l'a souligné dans les commentaires.
Définir gitproxy (comme le mentionne 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
http_proxy
est requise pour les URL HTTP et https_proxy
est requise pour les URL HTTPS. Alternativement, on pourrait simplement définir all_proxy
pour toutes les URL. Voir la ENVIRONMENT
section dans curl (1) . Cependant, lors de la définition des options de git-config, http.proxy
est utilisé pour les URL HTTP et HTTPS. Voir http.proxy
dans git-config (1) .
Si la méthode de configuration de votre serveur proxy en ligne de commande ne fonctionne pas, vous pouvez probablement simplement modifier .gitconfig (à la racine de votre profil, qui peut se cacher à la fois dans C: \ Documents and Settings et sur un lecteur réseau) et l'ajouter :
[http]
proxy = http://username:password@proxy.at.your.org:8080
YMMV cependant, cela ne couvre que la première étape de la configuration de la ligne de commande. Vous devrez peut-être également modifier la configuration du système git et je ne sais pas où ils l'ont caché.
Comme alternative à l'utilisation 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 persistante. 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 ce qui suit
#!/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: configurer la commande proxy pour GIT en définissant la variable d'environnement
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
Utilisez maintenant les commandes git, telles que
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
"$@"
place de $*
. Consultez le manuel de votre shell pour plus de détails.
Face au même problème en raison de plusieurs .gitconfig
fichiers dans Windows, suivi des étapes ci-dessous pour résoudre le même:
Étape 1: Ouvrez Git BASH
Étape 2: Recherchez .gitconfig
, exécutez la commande suivante:
git config --list --global --show-origin
Étape 3: copiez le contenu ci-dessous dans .gitconfig
:
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
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
ensemble core.gitproxy
au nom de ce script.
socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
set GIT_PROXY_COMMAND=path\to\script
pour que GIT utilise le proxy sans jouer avec git config.
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.-à-d. git@github.com:<user name>/<project name>.git
):
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
Et les choses ne changeront pas si nous définissons SSH sur le port HTTPS ( https://help.github.com/en/articles/using-ssh-over-the-https-port ) car il ne change que le port (22 par défaut ) la connexion ssh se connecte à.
(Pas un locuteur natif anglais, veuillez affiner mes mots si nécessaire)
Je travaille sur Windows XP au travail (état / gouvernement), j'ai donc fait mes recherches et trouvé cela ici et cela a fonctionné pour moi. J'espère que cela t'aides :)
La 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 afin d'accéder à une URL à partir de la ligne de commande. Exemple: installation de ppm pour perl ou application de rpm sous linux, mise à jour d'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 nécessite un nom d'utilisateur et un mot de passe, incluez-les sous la forme suivante: http_proxy = http: // [nom d'utilisateur: password@proxy.example.org]
Si le serveur proxy utilise un port autre que 80, incluez le numéro de port: http_proxy = http: // [nom d'utilisateur: password@proxy.example.org: 8080]
Windows XP
- Ouvrez le Panneau de configuration et cliquez sur l'icône Système.
- Dans 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, définir ou exporter). Pour rendre cette modification persistante, ajoutez la commande au fichier de profil approprié pour le shell. Par exemple, dans bash, ajoutez une ligne comme celle-ci à votre fichier .bash_profile ou .bashrc:
- http_proxy = http: // [nom d'utilisateur: mot de passe @ nom d'hôte: port];
- exporter $ http_proxy
En plus de ces réponses, j'ai trouvé utile de considérer ces 2 points:
Il peut être nécessaire 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.
Dans git bash:
echo %userdomain%
Et mettez à jour le http.proxy en conséquence:
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
Quoi qu'il en soit, l'enquête peut être aidée en ajoutant des journaux CURL:
export GIT_CURL_VERBOSE=1
git config --global http.proxyAuthMethod basic
. Git gersion 2.8.3 n'a envoyé aucune authentification tant que je n'ai pas défini ce paramètre de configuration.
Si vous avez installé et configuré des tsocks ou des chaînes proxy , vous pouvez
$ tsocks git clone <you_repository>
ou
$ proxychains git clone <you_repository>
pour le raccourcir, j'ai créé un lien symbolique /usr/bin/p
pour proxychains
que je puisse l'utiliser comme ceci
p git clone <you_repository>
et je peux l'utiliser pour proxy n'importe quelle commande,
p <cmd-need-be-proxied>
au fait, les proxychains ne sont pas mis à jour depuis longtemps, vous pouvez essayer proxychians-ng
Configurer git proxy sur le terminal
si
Réglez-le 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 (il peut y avoir des situations où vous ne souhaitez peut-être pas utiliser le même proxy ou un proxy pour certaines connexions 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 proxy actuels
git config --list
si vous souhaitez supprimer le proxy globalement
git config --global --unset http.proxy
git config --global --unset https.proxy
si vous souhaitez 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
voici le paramètre proxy
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
J'ai suivi la plupart des réponses 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) - La fonction de révocation n'a pas pu vérifier la révocation du certificat.
J'ai ensuite essayé la commande suivante de @Salim Hamidi
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
Mais j'ai eu l'erreur suivante:
fatal: impossible d'accéder à ' https://github.com/folder/sample.git/ ': code HTTP 407 reçu du proxy après CONNECT
Cela peut se produire 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 approuvés), j'ai donc effectué les étapes suivantes qui ont été 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.Ensuite, listez et obtenez le contenu de gitconfig
git config --list --show-origin
3.Dernière mise à jour du contenu du fichier gitconfig comme ci-dessous:
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
J'ai essayé toutes les réponses ci-dessus et rien n'a fonctionné pour moi, car il y avait un problème d'encodage de mot de passe proxy.
Cette commande a fonctionné:
git config --global http.proxy http://username@proxy.example.com:PortNumber
N'entrez pas le mot de passe dans votre commande. Il vous demandera dynamiquement lorsque vous essayez de vous connecter à n'importe quel dépôt git.
Pour les utilisateurs de Windows: si git config
ou set http_proxy=
ne fonctionne pas, cette réponse peut aider:
remplacer le git://
protocole du dépôt git par http://
. Notez que vous devrez de http_proxy
toute façon définir le premier.
Après avoir inlassablement essayé toutes les solutions de cette page, mon travail a consisté à utiliser la clé SSH à la place!