web-dev-qa-db-ja.com

Gitを設定してプロキシを経由する方法

職場でGitHubに接続したいので、httpプロキシを経由する必要があります。私はコマンドを使用してcURLを使用してFTPに出かけることができます

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

これまでのところ、Gitに同等の設定を提供することはできませんでした。

Draconianプロキシを介したGithubの使用 cygwinでの指示に従ってみました。

コルク抜きをインストールし、GitHubにSSHで接続しようとしました

ssh github.com

または

ssh ssh.github.com

私は戻ってきます

ssh:ホスト名を解決できませんでしたssh.github.com:ホスト名もservnameも指定されたか、不明です。

Httpおよびhttpsプロキシを設定しようとしました。

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

私も走った

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

次に、クローンして取得します。

$ 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

これは、プロキシで認証に失敗しているように見えます。ただし、私はcURLを介したFTPで機能する同じログインとパスを使用しています。

接続するにはどうすればよいですか?

29
Peter Wilkinson

頭をバッシングした後、私はついに偶然出会った http://cntlm.sourceforge.net/ 。 NTLM認証を理解するプロキシプロキシです。

私はそれをインストールし、httpプロキシについて伝えました。次にgitをCNTLMに向けると、すべて動作し始めました。

これが非常にイライラするので、同じ状況で他の人に役立つことを願っています。

29
Peter Wilkinson

通常、設定する必要があるのは次のものだけです。

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

https_proxyは同じものを指しますhttp、httpsではなく、プロキシアドレス)

gitでHttpが機能しない 」も参照してください。

12
VonC

〜/ .curlrcにプロキシ情報を入れることができます:

/home/usr/.curlrc

プロキシ= proxy.proxyhost.com:8443
proxy-user = user:pass
proxy-ntlm = true
noproxy = localhost、127.0.0.1、intraweb.company.com

6
jeckhart

プロキシ経由でsshをgithubにトンネリングできる可能性は低いです。ただし、githubはすべてのリポジトリにhttps URLを提供するため、sshを必要とせずにプッシュできます。既にリポジトリをチェックアウトしている場合は、使用するURLを変更できます

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

(プッシュアクセスが必要ない場合は、2行目をスキップします)。これと、VonCで述べられている環境変数(https_proxy)の設定により、プロキシ経由のアクセスが可能になります。

2
patthoyts