Я искал способ ограничить доступ к частному репозиторию Debian и иметь возможность аутентификации в нем неинтерактивно (т.е. используя скрипт)
Самая полезная статья, которую я нашел, если на самом деле одна с сайта администрирования Debian, но безопасный метод использует ssh и открытые / закрытые ключи. Он прекрасно работает, но открытый ключ каждого хоста должен находиться внутри удаленного файла authorized_keys для успешной аутентификации. В нем ничего не сказано о предоставлении пароля для ssh: // но я полагаю, что это возможно.
Вы пробовали другие альтернативы (например, ftps)?
заранее спасибо
Ответы:
Если вы всегда запускаете
apt-get
на своих серверах вручную (автоматическиеapt-get
команды не запускаются crons), то вы можете рассмотреть возможность использования переадресации агента ssh . Это позволяет избежать необходимости управлять одной парой открытых / закрытых ключей для каждого сервера, которым вы управляете, и, вероятно, безопаснее, чем оставлять закрытые ключи на каждом сервере.Начальная конфигурация - подключитесь к серверам, которыми вы хотите управлять, и добавьте что-то вроде этого
/etc/apt/sources.list
(в этом примере предполагается, что вы хотите, чтобы ваши серверы подключались кmanager
учетной записи):создайте пару личных / открытых ключей на вашем собственном компьютере,
johndoe
например , с вашим логином (при условии, что ваш компьютер работает на Debian: если нет, вы можете сделать это с сервера Debian, выделенного для управления):скопируйте ваш открытый ключ на сервер репозитория в
/home/manager/.ssh/authorized_keys
:Один раз за сеанс управления
запустите на своей машине агент ssh, набрав:
добавьте ваш ключ к агенту (для этого потребуется ваша фраза-пароль):
Управление сервером
подключиться к серверу, которым вы хотите управлять
ssh -A
(-A
активирует переадресацию агента):переключитесь на root (если вы хотите использовать его,
sudo
вам нужно настроить его,/etc/sudoers
иначе выsudo
перестанете переадресовывать агент, прочитайте это ):Теперь вы сможете подключиться к учетной записи менеджера репозитория с помощью ssh без повторного ввода пароля, благодаря переадресации агента. Поэтому
apt-get
должно работать просто отлично:Завершение сеанса управления
Как только вы закончили управлять своими серверами, удалите ключи из агента:
преимущества
ssh-ask
для принятия / отказа от каждой попытки использования вашего ключа.источник
Один из способов сделать это - просто разрешить определенному набору IP-адресов доступ к хранилищу. Это очень хорошо работает для локальной сети и VPN.
Просто и эффективно.
источник
Решение SSH + государственные / частные ключи не что плохо:
ssh-keygen
, тоssh-copy-id your_login@your.repository.org
отредактировать
/etc/apt/sources.list
и добавить что-то вроде:Конечно, это требует, чтобы вы поместили открытый ключ каждого сервера в
~/.ssh/authorized_keys
файл на сервере, но это не так сложно (см. Выше) и дает вам контроль над тем, какие серверы вы разрешаете или нет в любой момент времени (вы можете удалить ключ в любое время вauthorized_keys
).источник
Вы можете настроить доступ https к вашему хранилищу, защищенный логином / паролем (обычная аутентификация). Проблема заключается в том, что вам необходимо ввести логин / пароль в виде открытого текста
/etc/apt/sources.list
(примечание: есть патч, позволяющий/root/.netrc
вместо этого вводить логин / пароль ).источник
Ссылка в вашем вопросе показывает несколько методов. Вы хотите номер 2, https + обычная аутентификация.
источник