exportiere HTTP_PROXY und Sonderzeichen in passwd

exportiere HTTP_PROXY und Sonderzeichen in passwd

Nehmen wir der Argumentation halber an, mein Passwort unten istabc123@

Ich muss meinen Linux-Rechner über einen Unternehmensproxy authentifizieren, um Patches und Updates zu erhalten. Normalerweise würde ich Folgendes verwenden:

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

Wenn ich jedoch ein echtes Kennwort mit der Endung " ersetze " @und dann ausführe aptitude update, erhalte ich ...

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

Ich habe versucht \@, das Kennwort mit zu maskieren und beides mit \@\@Doppelzeichen ( @@) zu maskieren, aber nichts scheint zu funktionieren, um den Proxy korrekt zu erreichen. Ich hatte nie ein Problem, bis ich vor Kurzem mein Kennwort geändert habe.

Wie kann ich mein Passwort in richtig maskieren bash?

Antwort1

Du könntest es versuchenURL-KodierungIhr Passwort. @sollte durch ersetzt werden %40.

Umgang mit Sonderzeichen in Proxy-Passwörtern unter Linuxzeigt an, dass dies funktionieren sollte, aber wenn man sich bei anderen Leuten umschaut, scheint es nicht zu funktionieren (und ich habe keine Möglichkeit, dies zu testen).

Antwort2

Noch einfacher und zuverlässiger!

Allgemeine Syntax:

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

Beispiel:

[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. Durch Komma getrennt.

--timeout=5 -> Verbindung wird in Sekunden aufrechterhalten.

-kein-Scheck-Zertifikat -> SSL-/Zertifikatsüberprüfung ignorieren.

--Spinne -> Wenn Sie die Konnektivität testen möchten, ohne die Datei herunterzuladen.

Anmerkungen:

Online-Konverter:

Ersetzen Sie Sonderzeichen durch den entsprechenden hexadezimalen Unicode. Eine Liste der Unicodes finden Sie auf der Websitehttps://unicode-table.com(oder)http://unicodelookup.com

Lokaler Konverter mit Python:

Referenz:Die Konvertierung des Passworts "p@s#w:E" in Unicode erfolgt wie folgt:

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

Eingang:

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

Ausgabe:

p%40s%23w%3AE

Antwort3

bitte verwenden Sie %40 anstelle von @ in Ihrem Passwort,

Zum Beispiel:

Ihr Passwort lautet " A@ple123 ", dann verwenden Sie " A%40ple123"

verwandte Informationen