Если вы всегда запускаете 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для принятия / отказа от каждой попытки использования вашего ключа.
- В любом случае, хакер не получит доступ к самому закрытому ключу: он сможет просто взломать механизм пересылки, чтобы использовать ключ, и только в течение времени, когда вы подключены к серверу.