27 votes

Comment configurer Git pour passer par un proxy ?

Je veux me connecter à GitHub au travail et j'ai besoin de passer par le proxy http. Je suis capable de sortir pour le FTP en utilisant cURL en utilisant la commande

curl -v -g --ftp-pasv --upload-file MYFILE --proxy PROXYADDRESS:PROXYPORT --proxy-ntlm --proxy-user WINDOWSDOMAIN\WINDOWSUSER:WINDOWSPASSWORD ftp://FTPUSER:FTPPASS@FTPURL/

Je n'ai pas encore été en mesure de fournir des paramètres équivalents pour Git.

J'ai essayé de suivre les instructions sur Utiliser Github à travers des proxy draconiens sous cygwin.

J'ai installé le tire-bouchon et j'ai essayé de me connecter en SSH à GitHub.

ssh github.com

ou

ssh ssh.github.com

Je reviens

ssh : Could not resolve hostname ssh.github.com : hostname nor servname provided, or not known.

J'ai essayé de configurer les proxy http et https.

Voici la sortie de git --config -l

core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files/Git/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
user.name=Peter Wilkinson
user.email=someemail@gmail.com
github.user=ProggerPete
github.token=shouldprobablykeepthissecret
http.proxy=http://somedomain\someuser:somepass@10.167.116.142:80
https.proxy=http://somedomain\someuser:somepass@10.167.116.142:80

J'ai également dirigé

export https_proxy=http://somedomain\someuser:somepass@10.167.116.142:80
export http_proxy=http://somedomain\someuser:somepass@10.167.116.142:80
set https_proxy=http://somedomain\someuser:somepass@10.167.116.142:80
set http_proxy=http://somedomain\someuser:somepass@10.167.116.142:80

J'essaie ensuite de cloner et j'obtiens.

$ git clone https://ProggerPete@github.com/project/JavaScript-Maven-Plugin.git
Cloning into JavaScript-Maven-Plugin...
Password:
error: The requested URL returned error: 407 while accessing https://ProggerPet
@github.com/project/JavaScript-Maven-Plugin.git/info/refs

fatal: HTTP request failed

Il me semble que l'authentification avec le proxy échoue. Cependant, j'utilise le même login et pass qui fonctionne pour le FTP via cURL.

Comment puis-je me connecter ?

29voto

Peter Wilkinson Points 2228

Après de nombreux coups de tête, je suis finalement tombé sur http://cntlm.sourceforge.net/ . Il s'agit d'un proxy qui comprend l'authentification ntlm.

Je l'ai installé et je lui ai parlé du proxy http. J'ai ensuite pointé git sur CNTLM et tout a commencé à fonctionner.

J'ai trouvé cela très frustrant et j'espère que cela aidera quelqu'un d'autre dans la même situation.

11voto

VonC Points 414372

En général, je n'ai besoin que d'un réglage :

set http_proxy=http://<login_internet>:<password_internet>@aproxy:aport
set https_proxy=http://<login_internet>:<password_internet>@aproxy:aport

(noter les https_proxy se réfère à la même http (et non https, adresse proxy)

Voir aussi " Impossible de faire fonctionner Http sur git ".

4voto

jeckhart Points 186

Vous pouvez mettre des informations sur le proxy dans votre ~/.curlrc :

/home/usr/.curlrc

proxy = proxy.proxyhost.com:8443
proxy-user = user:pass
proxy-ntlm = true
noproxy = localhost,127.0.0.1,intraweb.company.com

2voto

patthoyts Points 8978

Il est peu probable que vous puissiez obtenir un accès ssh à github via votre proxy. Cependant, comme github fournit des urls https pour tous leurs dépôts et que vous pouvez y pousser, vous n'avez pas besoin de ssh. Si vous avez déjà un dépôt vérifié, vous pouvez changer l'url utilisée avec

git remote set-url origin https://github.com/project/repo.git
git remote set-url --push origin https://YOURNAME@github.com/project/repo.git

(sautez la deuxième ligne si vous n'avez pas besoin d'un accès push). Ceci, ainsi que le paramétrage des variables d'environnement (https_proxy) comme mentionné par VonC, permettra l'accès via votre proxy.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X