Git가 프록시 서버와 함께 작동하도록 하는 중 - "Request timeout"(요청 시간 초과됨)으로 인해 실패합니다.
Git가 프록시 서버를 사용하도록 하려면 어떻게 해야 합니까?
Git 서버에서 코드를 체크아웃해야 하는데 매번 "Request timeout"으로 표시됩니다.어떻게 하면 이 상황을 피할 수 있을까요?
또는 프록시 서버를 설정하려면 어떻게 해야 합니까?
사용할 명령:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
proxypwd
proxy.server.com
합니다.8080
합니다.
이것은 HTTP 및 HTTPS 리포지토리 모두에서 작동합니다.
언제든지 이 프록시를 재설정하고 프록시 없이 작업하기로 결정한 경우
사용할 명령:
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 설정 버튼, 프록시 서버 섹션 내의 고급 버튼에서 가져왔습니다. 첫 번째 (임의) 행에 있는 서버 이름과 포트를 사용합니다.
mygithubuser = github.com 에 로그인할 때 사용하는 사용자
mygithubpwd = 내 github.com 사용자의 암호
repoUser = 리포지토리의 사용자 소유자
repoName = 리포지토리의 이름
이 " " " 인 합니다.http_proxy
의 ProxyServer:Port
그것이 가장 간단한 해결책입니다.각, 사를 합니다.https_proxy
대후가 댓글에서 지적했듯이.
gitproxy를 설정하는 것도 다른 옵션이지만, 이를 위해서는 위의 솔루션만큼 간단하지 않은 "명령"이 필요합니다.
사에대대로으안한용로를 사용하는 에.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"'
프록시 서버를 구성하는 명령줄 방식이 작동하지 않으면 .gitconfig(프로파일 루트에 있는 C:\Documents and Settings(문서 및 설정) 및 일부 네트워크 드라이브)를 추가하고 다음을 추가합니다.
[http]
proxy = http://username:password@proxy.at.your.org:8080
하지만 마일리지는 다를 수 있습니다.여기에서는 명령줄 구성의 첫 번째 단계만 다룹니다.당신도 시스템 Git 구성을 편집해야 할 수도 있고 나는 그들이 그것을 어디에 숨겼는지 전혀 모릅니다.
Ubuntu를 사용하는 경우 다음을 수행합니다.
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
여기서 제가 주목하고 공유하고 싶은 것이 있습니다.
git config --global http.proxy http://<proxy address>:<port number>
은 SSH SSH URL(", SSH URL)에서는 작동하지 .git@github.com:<user name>/<project name>.git
):
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
HTTPS 포트(https://help.github.com/en/articles/using-ssh-over-the-https-port) 를 통해 SSH를 설정해도 SSH 연결이 연결된 포트(기본적으로 22개)만 변경되므로 상황은 바뀌지 않습니다.
의 여러문인동문직제면다니습했에일한해제로▁▁of▁issue▁because▁same▁faced다 때문에 같은 문제에 직면했습니다..gitconfig
다음 단계에 따라 동일한 파일을 수정할 수 있습니다.
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://
Git 프로토콜(git://...)의 경우 socat를 설치하고 다음과 같은 스크립트를 작성합니다.
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
실행 파일로 만들고 경로에 저장한 다음 ~/.gitconfig에서 core.gitproxy를 해당 스크립트의 이름으로 설정합니다.
저는 회사(주/정부)에서 Windows XP 관련 작업을 수행하고 있기 때문에 조사를 해본 결과 이 작업이 효과적이었습니다.
http_proxy 환경 변수
프록시 서버 또는 방화벽을 사용하는 경우 명령줄에서 일부 URL에 액세스하려면 http_proxy 환경 변수를 설정해야 할 수 있습니다.
예:Perl용 PPM 설치 또는 Linux에서 RPM 파일 적용, Ubuntu 업데이트
프록시 서버의 호스트 이름 또는 IP 주소를 사용하여 http_proxy 변수를 설정합니다.
http_proxy=http:// [proxy.example.org]
프록시 서버에 사용자 이름과 암호가 필요한 경우 다음 형식으로 포함합니다.
http_proxy=http:// [username:password@proxy.example.org]
프록시 서버가 80이 아닌 다른 포트를 사용하는 경우 포트 번호를 포함합니다.
http_proxy=http:// [username:password@proxy.example.org:8080]
윈도 XP
- 제어판을 열고 시스템 아이콘을 클릭합니다.
- 고급 탭에서 환경 변수를 클릭합니다.
- System variables 패널을 클릭합니다.
- 적절한 프록시 정보를 사용하여 http_proxy를 추가합니다(위 예제 참조).
셸에 고유한 명령(예: SET 또는 내보내기)을 사용하여 http_proxy 환경 변수를 설정합니다.이 변경 내용을 지속적으로 변경하려면 명령을 셸의 해당 프로필 파일에 추가합니다.예를 들어 Bash에서 다음과 같은 행을 .bash_profile 또는 .bashrc 파일에 추가합니다.
- http_http=http:// [http:password@http:port];
- $sv_dll을 내보냅니다.
이러한 답변 외에도 다음 두 가지 사항을 고려하는 것이 도움이 되었습니다.
인증 체계를 적용해야 할 수도 있습니다.
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
또한 일반적으로 NTLM 인증 스키마를 사용하는 경우 AD 도메인을 명시적으로 제공해야 할 수 있습니다.
Git Bash에서:
echo %userdomain%
그에 따라 http.proxy를 업데이트합니다.
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
어쨌든 CURL 로그를 추가하면 조사에 도움이 될 수 있습니다.
export GIT_CURL_VERBOSE=1
양말 또는 프록시 체인을 설치하고 구성한 경우 다음 작업을 수행할 수 있습니다.
tsocks git clone <your_repository>
또는
proxychains git clone <your_repository>
더 짧게 하기 위해 상징적인 연결고리를 만들었습니다./usr/bin/p
,위해서proxychains
할 수 .
p git clone <your_repository>
어떤 명령이든 프록시로 사용할 수 있습니다
p <cmd-need-be-proxied>
그런데 프록시 체인이 오랫동안 업데이트되지 않아서 대신 프록시 chians-ng을 사용해보는 것이 좋을 것 같습니다.
터미널에서 Git 프록시 설정
한다면
- 각 Git 프로젝트에 대해 하나씩 수동으로 프록시를 설정하지 않으려는 경우
- 항상 모든 프로젝트에 동일한 프록시 사용
글로벌하게 한 번 설정:
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
하나의 Git 프로젝트에만 프록시를 설정하려는 경우(일부 Git 연결에 대해 동일한 프록시 또는 프록시를 전혀 사용하지 않는 경우가 있을 수 있음):
// Go to the 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
현재 프록시 설정을 표시하려면 다음을 수행합니다.
git config --list
프록시를 전역적으로 제거하려면 다음을 수행합니다.
git config --global --unset http.proxy
git config --global --unset https.proxy
하나의 Git 루트에 대해서만 프록시를 제거하려는 경우:
// Go to the project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
저는 여기서 추천하는 대부분의 답변을 따랐습니다.먼저 다음 오류가 발생했습니다.
치명적: 'https://github.com/folder/sample.git/' 에 액세스할 수 없음: 채널: 다음 초기화SecurityContext 실패:알 수 없는 오류(0x80092012) - 해지 기능이 인증서에 대한 해지를 확인할 수 없습니다.
그런 다음 @Salim Hamidi의 다음 명령을 시도했습니다.
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
하지만 다음과 같은 오류가 발생했습니다.
치명적: 'https://github.com/folder/sample.git/' 에 액세스할 수 없음: CONNECT 후 프록시로부터 HTTP 코드 407을 수신함
프록시 서버가 SSL 인증서를 확인할 수 없는 경우 이 문제가 발생할 수 있습니다.따라서 ssl 확인이 해제되었는지 확인하고 싶습니다(신뢰할 수 없는 사이트에 권장되지 않음). 따라서 @Arpit에서 권장하는 다음 단계를 수행했지만 약간 변경되었습니다.
1.먼저 이전 프록시 설정을 제거해야 합니다.
git config --global --unset http.proxy
2. 그런 다음 gitconfig 콘텐츠를 나열하고 가져옵니다.
git config --list --show-origin
3.gitconfig 파일의 내용을 아래와 같이 마지막으로 업데이트합니다.
[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
프록시 설정은 다음과 같습니다.
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
이전 답변을 모두 시도해 보았지만 프록시 암호 인코딩 문제가 발생했기 때문에 아무 것도 작동하지 않았습니다.
이 명령은 작동했습니다.
git config --global http.proxy http://username@proxy.example.com:PortNumber
명령에 암호를 입력하지 마십시오.Git 저장소에 연결하려고 할 때 동적으로 요청합니다.
Windows 사용자의 경우:git config
또는set http_proxy=
작동하지 않습니다. 이 대답이 도움이 될 수 있습니다.
교체합니다.git://
Git 저장소의 프로토콜을 사용합니다.http://
참고, 다음을 설정해야 합니다.http_proxy
우선, 어쨌든.
이 페이지의 모든 솔루션을 끊임없이 시도한 후, 제 해결 방법은 SSH 키를 대신 사용하는 것이었습니다!
- 깃배시 열기
ssh-keygen.exe -t rsa -C <Your username>
- Git 공급자(GitHub, 비트 버킷 등)를 엽니다.
- Git 공급자의 입력 페이지에 id_rsa.pub 파일 내용 복사 추가(프로파일 확인)
프록시를 사용하는 대신 SSH를 사용합니다.
Git 구성에서 SSH 주소에 오리진 원격을 구성합니다.그런 다음 GitLab 또는 Gitab 계정 설정에서 설정할 수 있는 공용 키를 제공하는 ssh-keygen 명령을 사용합니다.
실행하여 사용 중인 원격 확인
git remote -v
당신의 Git 클라이언트에서.http(s) URL인 경우 ssh 주소로 변경하고 다음을 실행합니다.
git remote set-url <remote name, e.g. origin> <new SSH URL>
.예를들면,git remote set-url git@gitlab.com:example/myproject.git
로그인을 위한 SSH 키를 생성하려면 다음을 실행합니다.
ssh-keygen -o
이 명령은 공용(id_rsa.pub 파일) 및 개인 키를 생성합니다.공용 키 내용을 복사합니다. (id_rsa.pub 파일에서)
GitLab, GitHub 등 프로필 섹션 → setting/down-key로 이동합니다.새 SSH 키를 생성하고 공용 키 내용을 붙여넣습니다.
언급URL : https://stackoverflow.com/questions/783811/getting-git-to-work-with-a-proxy-server-fails-with-request-timed-out
'source' 카테고리의 다른 글
집계 프레임워크를 사용한 MongoDB의 그룹 수 (0) | 2023.05.02 |
---|---|
Excel 시트에서 Datetime 값을 읽는 중 (0) | 2023.05.02 |
ASP의 주장은 무엇입니까?NET 아이덴티티 (0) | 2023.05.02 |
모듈에서 __getattr__ (0) | 2023.05.02 |
Makefile targets에서 Bash 구문을 사용하려면 어떻게 해야 합니까? (0) | 2023.04.27 |