HTTP_PROXYとpasswdの特殊文字のエクスポート

HTTP_PROXYとpasswdの特殊文字のエクスポート

議論のために、私のパスワードは次のとおりです。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進Unicodeに置き換えます。 Unicodeのリストについてはウェブサイトをご覧ください。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

答え3

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

たとえば、

パスワードは「A@ple123」で、「A%40ple123」を使用してください。

関連情報