экспорт HTTP_PROXY и специальных символов в passwd


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'

Я попытался экранировать пароль с \@помощью \@\@, двойные символы ( @@), оба с помощью , и ничто, кажется, не получить это правильно прокси; У меня никогда не было проблем, пока я недавно не сменил пароль.

Как правильно скрыть мой пароль 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 urls. Разделяется запятой.

--timeout = 5 -> Соединение, которое будет поддерживаться в течение нескольких секунд.

-no-check-Certificate -> Игнорировать SSL / Проверка сертификата.

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

Ноты:

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

Замените специальные символы на эквивалентный шестнадцатеричный юникод. Список юникодов можно найти на веб-сайте 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

0

используйте% 40 вместо @ в вашем пароле,

например:

Ваш пароль "A @ ple123", затем используйте "A% 40ple123"

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.