passwdでHTTP_PROXYおよび特殊文字をエクスポートする


8

議論のために、以下の私のパスワードが 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'

私はでパスワードを\@エスケープし、両方を\@\@2文字(@@)でエスケープしようとしましたが、これが正しくプロキシされないようです。最近パスワードを変更するまで問題はありませんでした。

パスワードをエスケープする正しい方法は何bashですか?

回答:


16

パスワードをURLエンコードしてみることができます。@に置き換える必要があります%40

Linuxのプロキシパスワードの特殊文字に取り組むと、これは機能するはずですが、他の人を見回すと、機能しないようです(これをテストする方法はありません)。


時間を節約するためだけに:meyerweb.com/eric/tools/dencoder。先端@Matをありがとう
ジャン・レミーレヴィ

1

さらにシンプルで信頼できる!

一般的な構文:

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:password-123@proxy.example.com:6050/ wget --timeout=5 --no-check-certificate http://google.com

{http、https、ftp} _proxy- > http、https、ftpのURL。コンマで区切られます。

--timeout = 5- >秒単位で維持する接続。

-no-check-certificate- > SSL /証明書の検証を無視します。

--spider- >ファイルをダウンロードせずに接続をテストする場合。

ノート:

オンラインコンバーター:

特殊文字を同等の16進ユニコードに置き換えます。ユニコードのリストについては、ウェブサイトhttps://unicode-table.com(または)http://unicodelookup.comを参照してください

Pythonを使用したローカルコンバーター:

参考:パスワード "p @ s#w:E"からUnicodeへの変換は次のようになります。

@ = %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

0

パスワードの@の代わりに%40を使用してください。

例えば:

パスワードは「A @ ple123」で、「A%40ple123」を使用します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.