web-dev-qa-db-fra.com

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 peux sortir pour 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 jusqu'à présent pas été en mesure de fournir des paramètres équivalents pour Git.

J'ai essayé de suivre les instructions sur tilisation de Github via des proxies draconiens sous cygwin.

J'ai un tire-bouchon installé et j'ai essayé de SSH vers GitHub

ssh github.com

ou

ssh ssh.github.com

Je reviens

ssh: impossible de résoudre le nom d'hôte ssh.github.com: nom d'hôte ni nom de serveur fournis, ou inconnus.

J'ai essayé de configurer le 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
[email protected]
github.user=ProggerPete
github.token=shouldprobablykeepthissecret
http.proxy=http://somedomain\someuser:[email protected]:80
https.proxy=http://somedomain\someuser:[email protected]:80

J'ai aussi couru

export https_proxy=http://somedomain\someuser:[email protected]:80
export http_proxy=http://somedomain\someuser:[email protected]:80
set https_proxy=http://somedomain\someuser:[email protected]:80
set http_proxy=http://somedomain\someuser:[email protected]:80

J'essaie ensuite de cloner et d'obtenir.

$ git clone https://[email protected]/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

Cela me semble que j'échoue à l'authentification avec le proxy. Cependant, j'utilise la même connexion et passe qui fonctionne pour FTP via cURL.

Comment puis-je me connecter?

29
Peter Wilkinson

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

Je l'ai installé et lui ai parlé du proxy http. Puis il a pointé Git à CNTLM et tout a commencé à fonctionner.

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

29
Peter Wilkinson

Je n'ai généralement besoin que de définir:

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

(noter la https_proxy fait référence au même http , pas https, adresse proxy)

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

12
VonC

Vous pouvez mettre des informations de 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

6
jeckhart

Il est peu probable que vous puissiez obtenir ssh vers github via votre proxy. Cependant, comme github fournit des URL https pour tous leurs référentiels et vous pouvez pousser pour que vous n'ayez pas besoin de ssh. Si vous avez déjà extrait un référentiel, vous pouvez modifier l'URL utilisée avec

git remote set-url Origin https://github.com/project/repo.git
git remote set-url --Push Origin https://[email protected]/project/repo.git

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

2
patthoyts