exporter HTTP_PROXY et des caractères spéciaux dans passwd

8

Supposons, pour les besoins de mon argument, que mon mot de passe ci-dessous soit abc123@

J'ai besoin d'authentifier ma machine Linux via un proxy d'entreprise pour obtenir des correctifs et des mises à jour ... normalement j'utiliserais ceci:

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

Cependant, lorsque je substitue un vrai mot de passe se terminant par @puis que aptitude updateje lance , j'obtiens ...

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

J'ai essayé d'échapper le mot de passe avec \@, les deux avec \@\@, les caractères doubles ( @@), et rien ne semble obtenir ceci pour le proxy correctement; Je n'ai jamais eu de problème jusqu'à ce que je change de mot de passe récemment.

Quelle est la bonne façon d'échapper à mon mot de passe bash?

Mike Pennington
la source

Réponses:

1

Encore plus simple et fiable!

Syntaxe générale:

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

Exemple:

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

{http, https, ftp} _proxy -> http, https, URL ftp. Séparé par une virgule.

--timeout = 5 -> Connexion pour rester en vie en quelques secondes.

-no-check-certificate -> Ignorer la vérification SSL / certificat.

--spider -> Si vous souhaitez tester la connectivité sans télécharger le fichier.

Remarques:

Convertisseur en ligne:

Remplacez les caractères spéciaux par son unicode hexadécimal équivalent. Pour une liste des unicodes, consultez le site Web https://unicode-table.com (ou) http://unicodelookup.com

Convertisseur local utilisant Python:

Référence: la conversion du mot de passe "p @ s # w: E" en unicode sera la suivante,

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

Contribution:

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

Production:

p%40s%23w%3AE
MSArun
la source
0

veuillez utiliser% 40 à la place de @ dans votre mot de passe,

par exemple:

votre mot de passe est "A @ ple123" puis utilisez "A% 40ple123"

Vedavyas
la source