Назад | Перейти на главную страницу

как управлять учетными данными / доступом к нескольким ssh-серверам

Я хотел бы создать сценарий, который может поддерживать несколько серверов через SSH. Я хочу управлять аутентификацией / авторизацией таким образом, чтобы аутентификация выполнялась шлюзом, а любой другой доступ маршрутизировался через этот ssh-сервер к внутренним службам без каких-либо дополнительных требований аутентификации / авторизации.

Итак, если пользователь A может, например, войти в server_1. Затем он может ssh на server_2 без какой-либо другой аутентификации и делать то, что ему разрешено делать на server_2 (например, выключить mysql, обновить его и перезапустить. Это можно сделать с помощью некоторого удаленного сценария оболочки).

Проблема, которую я пытаюсь решить, состоит в том, чтобы придумать сценарий развертывания для системы JavaEE, которая включает базы данных и экземпляры tomcat. Их нужно выключить и заново создать. Требование состоит в том, чтобы иметь сценарий развертывания с минимальным человеческим участием как для разработчиков, так и для эксплуатации.

Не стоит изобретать велосипед здесь заново, иначе в конечном итоге вы только заставите себя работать больше и создадите новые проблемы с безопасностью. На ум приходят два варианта:

  • Напишите набор API, который обрабатывает только те действия, которые вам необходимо выполнить, затем разместите его на шлюзе и добавьте аутентификацию. Наличие подобной системы поддержки вместо попытки использовать ssh с вашим собственным механизмом безопасности значительно снизит уровень уязвимости, а также упростит реализацию на различных платформах.
  • Настроить комбинацию аутентификации на основе ключей, использование ssh-agent на клиенте и переадресация агента разрешена в конечные пункты назначения, так что вы можете использовать SSH от одного к другому на основе ваших локально разблокированных ключей.

Поскольку вы используете ssh, вам следует взглянуть на ssh key на основе аутентификации и использования ssh-агент. Если вы используете что-то вроде PuTTY и конкурс тогда вы можете просто загрузить закрытый ключ в конкурс и использовать его для аутентификации, где бы ни находился соответствующий открытый ключ.

Если вам удастся все автоматизировать, то можно ограничить использование ключа определенные команды слишком.