development

git 프록시 비밀번호에서 @ 문자 이스케이프

big-blog 2020. 10. 28. 08:24
반응형

git 프록시 비밀번호에서 @ 문자 이스케이프


git proxy config as 'http.proxy = http : // userId : pwd @ 123 @ipaddress : port'하지만 원격 프로젝트를 복제하는 동안 다음과 같은 오류가 발생합니다.

Cloning into git...
error: Couldn't resolve proxy '123@ipaddress' while accessing http://git.kernel.org/pub/scm/git/git.git/info/refs

fatal: HTTP request failed

비밀번호에서 '@'문자를 이스케이프하는 방법은 무엇입니까?

Pls 참고 : 암호를 변경할 수 없습니다.


프록시 URL에 암호를 전달하는 경우 @ 기호의 URL 인코딩 값을 사용해 보겠습니다.

http.proxy=http://userId:pwd%40123@ipaddress:port

참고 (2013 년 11 월)

URL (특히 암호의 특수 문자)을 인코딩하는 것이 올바른 해결책입니다.
.netrc해결하는 데 사용되는 프록시는 원격의 repo URL을 말했다하지 않는, 오직 원격의 repo URL에 대한 다음에서 언급.

해당 인코딩에 대해서는 " 백분율 인코딩 "을 참조하십시오 .

URL 인코딩 이라고도하는 백분율 인코딩 특정 상황에서 URI ( Uniform Resource Identifier)로 정보를 인코딩하는 메커니즘입니다 . URL 인코딩으로 알려져 있지만 실제로는 URL ( Uniform Resource Locator )과 URN ( Uniform Resource Name )을 모두 포함 하는 기본 URI ( Uniform Resource Identifier ) 세트 내에서 더 일반적으로 사용됩니다 . 따라서 HTTP 요청 에서 HTML 양식 데이터를 제출하는 데 자주 사용되는 것처럼 application / x-www-form-urlencoded 미디어 유형 의 데이터 준비에도 사용됩니다 .

백분율 인코딩 후 예약 된 문자 :

!   #   $    &   '   (   )   *   +   ,   /   :   ;   =   ?   @   [   ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D

원문 답변 (2011 년 5 월)

두 가지 의견 :

  • http (https가 아님)로 액세스 한 서버의 암호를 갖는 것은 이상합니다. 암호는 클라이언트와 서버 간의 통신 중에 암호화되지 않습니다.

  • 에서 다음 내용 으로 .netrc(또는 _netrcWindows 용)을 설정할 수 $HOME있습니다.

    기계 ipaddress : port
    로그인 사용자 ID
    암호 pwd @

Git bbehind에서 사용하는 curl은 인코딩을 잘 처리 @하거나 @.


URL은 비정상적인 문자를 인코딩합니다.

URL 코드 목록입니다.

@ character is %40

내 자식 구성 파일에서 예를 들어 사용자 이름을 '단지'로 인코딩했습니다.

https://myemail%40gmail.com@myrepo.org/api.git


예를 들어, 환경 변수 GIT_PASSWORD, username-에 저장된 비밀번호 GIT_USERNAME는 다음과 같습니다.

git clone http://${GIT_USERNAME}:$(echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %)@repository.git

설명 : echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %

  1. 인쇄 암호 : $GIT_REPOSITORY<-hello
  2. 'hello'를 16 진수로 변환 : hello<-x68x65x6Cx6Cx6F
  3. 각 'x'를 '%'로 변경 : x68x65x6Cx6Cx6F<-%68%65%6C%6C%6F

당신은에있는 퍼센트 인코딩 | 특수 문자를 인코딩 하십시오. 예를 들면 다음과 같습니다.

http://foo:B@r@http-gateway.domain.org:80

당신은 이것을 작성합니다 :

http://foo:B%40r@http-gateway.domain.org:80

그래서 @으로 대체됩니다 %40.

참고 URL : https://stackoverflow.com/questions/6172719/escape-character-in-git-proxy-password

반응형