экспорт 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}_прокси -> http, https, ftp url. Разделяются запятой.

--таймаут=5 -> Подключение будет поддерживаться в течение нескольких секунд.

-сертификат без проверки -> Игнорировать проверку SSL/сертификата.

--паук -> Если вы хотите проверить подключение, не загружая файл.

Примечания:

Онлайн-конвертер:

Замените специальные символы на эквивалентный шестнадцатеричный юникод. Список юникодов см. на сайтеhttps://unicode-table.com(или)http://unicodelookup.com

Локальный конвертер с использованием Python:

Ссылка:Преобразование пароля "p@s#w:E" в юникод будет выглядеть следующим образом:

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

Связанный контент