Если вы всегда запускаете apt-get
на своих серверах вручную (автоматические apt-get
команды не запускаются crons), то вы можете рассмотреть возможность использования переадресации агента ssh . Это позволяет избежать необходимости управлять одной парой открытых / закрытых ключей для каждого сервера, которым вы управляете, и, вероятно, безопаснее, чем оставлять закрытые ключи на каждом сервере.
Начальная конфигурация
- подключитесь к серверам, которыми вы хотите управлять, и добавьте что-то вроде этого /etc/apt/sources.list
(в этом примере предполагается, что вы хотите, чтобы ваши серверы подключались к manager
учетной записи):
deb ssh://manager@my.repository.org/path other stuff
создайте пару личных / открытых ключей на вашем собственном компьютере, johndoe
например , с вашим логином (при условии, что ваш компьютер работает на Debian: если нет, вы можете сделать это с сервера Debian, выделенного для управления):
ssh-keygen
- убедитесь, что он защищен сильной ключевой фразой
скопируйте ваш открытый ключ на сервер репозитория в /home/manager/.ssh/authorized_keys
:
ssh-copy-id manager@my.repository.org
Один раз за сеанс управления
запустите на своей машине агент ssh, набрав:
eval `ssh-agent`
добавьте ваш ключ к агенту (для этого потребуется ваша фраза-пароль):
ssh-add
Управление сервером
подключиться к серверу, которым вы хотите управлять ssh -A
( -A
активирует переадресацию агента):
ssh -A some.server.org
переключитесь на root (если вы хотите использовать его, sudo
вам нужно настроить его, /etc/sudoers
иначе вы sudo
перестанете переадресовывать агент, прочитайте это ):
su
Теперь вы сможете подключиться к учетной записи менеджера репозитория с помощью ssh без повторного ввода пароля, благодаря переадресации агента. Поэтому apt-get
должно работать просто отлично:
apt-get udate
Завершение сеанса управления
преимущества
- Не требуется много начальной настройки
- Требуется только один закрытый ключ
- Закрытый ключ защищен надежной парольной фразой
- Если кто-то получит root-доступ к одному из ваших серверов, он не получит немедленного доступа к вашему серверу хранилища.
- Обратите внимание, что если хакер терпелив и квалифицирован, он может подождать, пока вы подключитесь к серверу, используя переадресацию агента, и он может перехватить механизм пересылки, чтобы получить доступ к вашему серверу репозитория.
- Чтобы предотвратить это, вы можете использовать их
ssh-ask
для принятия / отказа от каждой попытки использования вашего ключа.
- В любом случае, хакер не получит доступ к самому закрытому ключу: он сможет просто взломать механизм пересылки, чтобы использовать ключ, и только в течение времени, когда вы подключены к серверу.