passwd에서 HTTP_PROXY 및 특수 문자 내보내기

passwd에서 HTTP_PROXY 및 특수 문자 내보내기

논쟁을 위해 아래 내 비밀번호는 다음과 같다고 가정합니다.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"을 사용하세요.

관련 정보