У меня есть виртуальная машина Ubuntu, которую я использую на работе. Ранее я использовал это без каких-либо проблем, но было добавлено обновление, которое теперь требует, чтобы все исходящие соединения проходили аутентификацию с нашим внутренним именем пользователя и паролем.
Когда я использую браузер на своей машине, это не проблема, я могу просто ввести свои учетные данные и затем двигаться дальше, но когда я запускаю apt-get update
(или любую такую команду), меня бомбят сбои:
W: не удалось получить http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/source/Sources 401 Требуется авторизация [IP: 91.189.91.14 80]
W: Не удалось получить http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/multiverse/source/Sources 401 Требуется авторизация [IP: 91.189.91.14 80]
Можно ли как-нибудь сказать apt-get
остановиться и попросить меня ввести свои учетные данные при поступлении запроса авторизации, а не просто сбой ? Я не могу найти никаких вариантов на странице справки об этом:
Options:
-h This help text.
-q Loggable output - no progress indicator
-qq No output except for errors
-d Download only - do NOT install or unpack archives
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-f Attempt to correct a system with broken dependencies in place
-m Attempt to continue if archives are unlocatable
-u Show a list of upgraded packages as well
-b Build the source package after fetching it
-V Show verbose version numbers
-c=? Read this configuration file
-o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp
Это уродливо и небезопасно, но да, вы можете.
См. на этой веб-странице для получения инструкций о том, как настроить apt-get для использования http-прокси, который требует аутентификации; в частности, раздел с пометкой «Как войти в систему прокси-пользователя».
Там также apt-get не работает с прокси , который описывает другой метод, но они оба страдают от одной и той же проблемы.
Ваше имя пользователя и пароль где-то жестко запрограммированы.
В качестве альтернативы, вы можете написать небольшую оболочку сценария оболочки для apt-get, которая может запросить у вас имя пользователя и пароль и установить только переменную окружения в памяти. Это все еще небезопасно, так как память процесса может быть исследована, но не так сильно, как жестко закодировано в файле.
#!/bin/bash
read -p "Username: " username
read -s -p "Password: " password
export http_proxy=http://${username}:${password}@yourproxyaddress:proxyport
sudo apt-get "$@"
К сожалению, я не думаю, что есть что-то встроенное в apt-get, которое бы с этим справилось.
Вы можете настроить прокси для apt.
sudo nano /etc/apt/apt.conf.d/proxy.conf
Добавьте ниже строку со значениями в соответствии с вашим прокси-сервером и сохраните ее.
Acquire::http::Proxy "http://user:password@proxy.server:port/";
Попробуйте запустить sudo apt update
это будет работать.