development

git이 프록시 서버로 작업하기

big-blog 2020. 9. 28. 09:31
반응형

git이 프록시 서버로 작업하기


git에서 프록시 서버를 사용하려면 어떻게해야합니까?

git 서버에서 코드를 확인해야합니다. 매번 "Request timed out"이 표시됩니다. 이 문제를 어떻게 해결합니까?

또는 프록시 서버를 어떻게 설정할 수 있습니까?


사용할 명령 :

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
  • proxyuser프록시 사용자로 변경
  • proxypwd프록시 비밀번호로 변경
  • proxy.server.com프록시 서버의 URL로 변경
  • 8080프록시 서버에 구성된 프록시 포트로 변경

언제든지이 프록시를 재설정하고 프록시없이 작업하기로 결정한 경우 :

사용할 명령 :

git config --global --unset http.proxy

마지막으로 현재 설정된 프록시를 확인하려면 :

git config --global --get http.proxy

이것은 회사 방화벽 뒤의 Windows XP에서 저에게 효과적이었습니다.

http://code.google.com/p/msysgit/downloads/list?can=3 에서 git v1.771 외에 로컬 프록시 나 다른 소프트웨어를 설치할 필요가 없었습니다 .

$ 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 = IT 부서에서 할당 한 프록시 사용자, 제 경우에는 PC에 로그인하는 데 사용하는 Windows 사용자 인 Active Directory 사용자와 동일합니다.

proxypwd = 내 프록시 사용자의 암호

proxy.server.com:8080 = 프록시 이름 및 포트, 제어판, 인터넷 옵션, 연결, Lan 설정 버튼, 프록시 서버 섹션의 고급 버튼에서 가져옴, 첫 번째 (http) 행의 서버 이름 및 포트 사용 .

mygithubuser = github.com 에 로그인하는 데 사용하는 사용자

mygithubpwd = 내 github.com 사용자의 비밀번호

repoUser = 저장소의 사용자 소유자

repoName = 저장소의 이름


http_proxy값으로 명명 된 시스템 변수를 설정합니다 ProxyServer:Port. 이것이 가장 간단한 해결책입니다. 각각 https_proxy댓글에서 지적한대로 대 후로 사용 하세요.

sleske가 언급 한대로 gitproxy를 설정하는 것도 또 다른 옵션이지만, 위의 솔루션만큼 간단하지 않은 "명령"이 필요합니다.

참조 : http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html


프록시 서버를 구성하는 명령 줄 방식이 작동하지 않는 경우 .gitconfig (프로필의 루트에서 C : \ Documents 및 설정과 일부 네트워크 드라이브 모두에서 숨길 수 있음)를 편집하고이를 추가 할 수 있습니다. :

[http]
    proxy = http://username:password@proxy.at.your.org:8080

그러나 YMMV는 명령 줄 구성의 첫 번째 단계 만 다룹니다. 시스템 git 구성도 편집해야 할 수 있으며 어디에 숨겼는지 모르겠습니다.


를 사용하는 대신 git config --global http.proxy address:port명령 줄에서 프록시를 설정할 수 있습니다.

git -c "http.proxy=address:port" clone https://...

장점은 프록시가 지속적으로 설정되지 않는다는 것입니다. Bash에서 별칭을 설정할 수 있습니다.

alias git-proxy='git -c "http.proxy=address:port"'

우분투를 사용하는 경우 다음을 수행하십시오 ...

1 단계 : 코르크 나사 설치

$ sudo apt-get install corkscrew

2 단계 : git-proxy.sh라는 스크립트를 작성하고 다음을 추가합니다.

#!/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 $*

3 단계 : 스크립트를 실행 가능하게 만들기

$ chmod +x git-proxy.sh

4 단계 : 환경 변수를 설정하여 GIT에 대한 프록시 명령 설정

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

이제 다음과 같은 git 명령을 사용하십시오.

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

.gitconfigWindows 의 여러 파일로 인해 동일한 문제가 발생 했으며 다음 단계에 따라 동일한 문제를 해결했습니다.

1 단계 : Git BASH 열기

2 단계 :.gitconfig 다음 명령을 실행하여을 찾습니다 .

git config --list --global --show-origin

3 단계 : 아래 콘텐츠를 복사합니다 .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

~ / .gitconfig 파일에 다음을 넣으십시오.

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://

For the git protocol (git://...), install socat and write a script such as:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

make it executable, put it in your path, and in your ~/.gitconfig set core.gitproxy to the name of that script.


In addition of thse answers, I found helpful to consider these 2 points:

One may need to enforce an authentication scheme:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

Also, typically with NTLM authentication schema, one may need to provide explicitely the AD domain.

In git bash:

echo %userdomain%

And update the http.proxy accordingly:

git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080

Anyway, investigation may be helped by adding CURL logs:

export GIT_CURL_VERBOSE=1

There's something I noticed and want to share here:

git config --global http.proxy http://<proxy address>:<port number>

The method above will not work for ssh URLs (i.e., git@github.com:<user name>/<project name>.git):

git clone git@github.com:<user name>/<project name>.git // will not use the http proxy

And things will not change if we set SSH over the HTTPS port (https://help.github.com/en/articles/using-ssh-over-the-https-port) because it only changes the port (22 by default) the ssh connection connects to.

(Not a native English speaker, please refine my words if necessary)


I work on Windows XP at work(state/gov), so I did my research and found this here and it worked for me. Hope this helps :)

The http_proxy Environment Variable

If you use a proxy server or firewall, you may need to set the http_proxy environment variable in order to access some url from commandline. Example : Installing ppm for perl or applying rpm in linux ,updating ubuntu

Set the http_proxy variable with the hostname or IP address of the proxy server: http_proxy=http:// [proxy.example.org]

If the proxy server requires a user name and password, include them in the following form: http_proxy=http:// [username:password@proxy.example.org]

If the proxy server uses a port other than 80, include the port number: http_proxy=http:// [username:password@proxy.example.org:8080]

Windows XP

  1. Open the Control Panel and click the System icon.
  2. On the Advanced tab, click on Environment Variables.
  3. Click New in the System variables panel.
  4. Add http_proxy with the appropriate proxy information (see examples above).

Linux, Solaris or HP-UX

Set the http_proxy environment variable using the command specific to your shell (e.g. set or export). To make this change persistent, add the command to the appropriate profile file for the shell. For example, in bash, add a line like the following to your .bash_profile or .bashrc file:

  1. http_proxy=http:// [username:password@hostname:port];
  2. export $http_proxy

If you have tsocks or proxychains installed and configured, you can

$ tsocks git clone <you_repository>

or

$ proxychains git clone <you_repository>

to make it shorter, I created a symbol link /usr/bin/p for proxychains, so I can use it like this

p git clone <you_repository>

and I can use it to proxy any command,

p <cmd-need-be-proxied>

by the way, proxychains is not updated for a long time, you may wanna try proxychians-ng


Setting git proxy on terminal

if

  • you do not want set proxy for each of your git projects manually, one by one
  • always want to use same proxy for all your projects

Set it globally once

git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port

if you want to set proxy for only one git project (there may be some situations where you may not want to use same proxy or any proxy at all for some git connections)

//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

if you want to display current proxy settings

git config --list 

if you want to remove proxy globally

git config --global --unset http.proxy
git config --global --unset https.proxy

if you want to remove proxy for only one git root

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy

I followed the most of the answers which was recommended here. First I got the following error:

fatal: unable to access 'https://github.com/folder/sample.git/': schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.

Then I have tried the following command by @Salim Hamidi

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

But I got the following error:

fatal: unable to access 'https://github.com/folder/sample.git/': Received HTTP code 407 from proxy after CONNECT

This could happen if the proxy server can't verify the SSL certificate. So we want to make sure that the ssl verification is off (not recommended for non trusted sites), so I have done the following steps which was recommended by @Arpit but with slight changes:

1.First make sure to remove any previous proxy settings:

git config --global --unset http.proxy

2.Then list and get the gitconfig content

git config --list --show-origin

3.Last update the content of the gitconfig file as below:

[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

For windows users: if git config or set http_proxy= doesn't work, this answer may help:

replace the git:// protocol of the git repository with http://. Note, you'll have to set the http_proxy first, anyways.


here is the proxy setting

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>

I have tried all the above answers and nothing worked for me, as there was a proxy password encoding issues.

This command worked:

git config --global http.proxy http://username@proxy.example.com:PortNumber 

Do not enter the password in your command. It will dynamically ask for when you try to connect to any git repo.


After tirelessly trying every solution on this page, my work around was to use and SSH key instead!

  1. Open Git Bash
  2. $ ssh-keygen.exe -t rsa -C
  3. Open your Git provider (Github, Bitbucket, etc.)
  4. Add copy the id_rsa.pub file contents into Git provider's input page (check your profile)

참고URL : https://stackoverflow.com/questions/783811/getting-git-to-work-with-a-proxy-server

반응형