HTTP_PROXY 및 passwd의 특수 문자 내보내기

HTTP_PROXY 및 passwd의 특수 문자 내보내기

논의를 위해 내 비밀번호는 다음과 같다고 가정해 보겠습니다.abc123@

패치와 업데이트를 위해 회사 에이전트를 통해 내 Linux 박스를 인증해야 합니다... 일반적으로 다음을 사용합니다.

export HTTP_PROXY='http://<Americas\Username>:<Password>@proxy.foo.com'
export http_proxy='http://<Americas\Username>:<Password>@proxy.foo.com'

그러나 으로 끝나는 실제 비밀번호를 바꾸고 @실행하면 aptitude update다음과 같은 결과가 나타납니다.

[mpenning@netwiki ~]$ sudo -E aptitude update
Err http://mirror.anl.gov squeeze Release.gpg
  Could not resolve '@proxy.foo.com'
Err http://mirror.anl.gov/debian/ squeeze/main Translation-en
  Could not resolve '@proxy.foo.com'

이중 문자( )로 이스케이프된 비밀번호를 사용하여 이스케이프된 비밀번호를 \@사용해 보았지만 프록시가 올바르게 작동하지 않는 것 같습니다. 최근에 비밀번호를 변경하기 전까지는 문제가 없었습니다.\@\@@@

비밀번호를 탈출하는 올바른 방법은 무엇입니까 bash?

답변1

당신은 시도 할 수 있습니다URL 인코딩너의 비밀번호. @로 교체해야 합니다 %40.

Linux에서 프록시 비밀번호의 특수 문자 처리이것이 작동해야 한다고 제안했지만 다른 사람들을 둘러보면 작동하도록 할 수 없는 것 같습니다(그리고 이것을 테스트할 수 없습니다).

답변2

더욱 간편하고 안정적으로!

일반 구문:

sudo {http,https,ftp}_proxy=http://<username>:<password>@<proxy_url/_proxyip>:<port>/ wget --timeout=5 --no-check-certificate http://<website_url>

예:

[root@localhost ~]# sudo {http,https,ftp}_proxy=http://username:[email protected]:6050/ wget --timeout=5 --no-check-certificate http://google.com

{http, https, ftp}_proxy -> http, https, ftp URL. 쉼표로 구분하세요.

--timeout=5 -> 연결은 몇 초 동안 활성 상태로 유지됩니다.

-검사증명서 없음 -> SSL/인증서 확인을 무시합니다.

- 거미 -> 파일을 다운로드하지 않고 연결성을 테스트하고 싶은 경우.

노트:

온라인 변환기:

특수 문자를 해당하는 16진수 유니코드로 바꿉니다. 유니코드 목록은 웹사이트를 참조하세요.https://unicode-table.com(또는)http://unicodelookup.com

Python의 기본 변환기를 사용하십시오.

인용하다:비밀번호 "p@s#w:E"를 유니코드로 변환하는 방법은 다음과 같습니다.

@ = %40
$ = %24
# = %23
: = %3A
p@s#w:E = p%40s%23w%3AE

입력하다:

[root@localhost ~]# python -c "import sys, urllib as enc; print enc.quote_plus(sys.argv[1])" "p@s#w:E"

산출:

p%40s%23w%3AE

답변3

비밀번호에 @대신 %40을 사용해주세요.

예를 들어:

비밀번호는 "A@ple123"이고 "A%40ple123"을 사용하세요.

관련 정보