export HTTP_PROXY e caracteres especiais no passwd

8

Suponha que, por uma questão de argumento, minha senha abaixo seja abc123@

Eu preciso autenticar minha máquina linux através de um proxy corporativo para obter patches e atualizações ... normalmente eu usaria isso:

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

No entanto, quando eu substituo uma senha real que termina com @ e, em seguida, execudo aptitude update , recebo ...

[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'

Eu tentei escapar a senha com \@ , escapando com \@\@ , caracteres duplos ( @@ ), e nada parece conseguir isso para proxy corretamente; Eu nunca tive um problema até que mudei minha senha recentemente.

Qual é o caminho certo para escapar da minha senha em bash ?

    
por Mike Pennington 03.07.2012 / 23:10

3 respostas

16

Você pode tentar codificar por URL sua senha. @ deve ser substituído por %40 .

Lidando com caracteres especiais em senhas proxy no Linux indica que isso deve funcionar, mas olhar em volta de outras pessoas parece não conseguir que isso funcione (e não tenho como testar isso).

    
por 03.07.2012 / 23:30
1

Ainda mais simples e confiável!

Sintaxe geral:

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

Exemplo:

[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 urls. Separado por vírgula.

- timeout = 5 - > Conexão para se manter vivo em segundos.

-no-check-certificate - > Ignore a verificação SSL / certificado.

- spider - > Se você quiser testar a conectividade sem baixar o arquivo.

Notas:

Conversor on-line:

Substitua os caracteres especiais pelo seu unicode hexadecimal equivalente. Para obter uma lista de unicodes, consulte o link do site (ou) link

Conversor local usando o Python:

Referência: a conversão da senha "p @ s # w: E" para unicode será a seguinte,

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

Entrada:

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

Saída:

p%40s%23w%3AE
    
por 15.07.2018 / 15:57
0

use% 40 no lugar de @ na sua senha,

por exemplo:

sua senha é "A @ ple123" e use "A% 40ple123"

    
por 19.04.2016 / 22:06