У меня есть ssh-доступ к почти дюжине машин, и я склонен работать с нескольких устройств самостоятельно (один основной ноутбук, один домашний ноутбук, смартфон через termux, планшет через termux, один резервный macbook, установка cygwin в офисе). Кроме того, некоторым из этих машин требуется доступ друг к другу (например, rsync через ssh для удаленного резервного копирования).

Когда у меня было меньше устройств, я был достаточно строг в отношении уникального ключа для каждой пары соединений, но это стало слишком громоздким, поэтому в настоящее время я работаю с двумя ключами (называемыми «личный» и «рабочий») для каждого устройства и имею два разных файла authorized_keys, в которых перечислены открытые ключи для всех ключей моих устройств. У меня есть простой скрипт bash, который отправляет эти файлы authorised_keys на нужные машины.

Это также разбито по сложности, потому что, например, есть некоторые устройства, которые должны иметь дополнительные ключи между устройствами, которые я не хочу предоставлять доступ ко всем моим машинам (например, ключ только для резервного копирования не должен быть разрешен доступ к моему домашнему ноутбуку).

Какой удобный способ управления ключами (и, в частности, авторизованными ключами) на каждой из этих машин? Я знаю об ANSIBLE и марионетках, и взглянул на оба, но они кажутся слишком сложными для того, что я пытаюсь сделать.

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

1 ответ1

1

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

Следующий шаг - использовать что-то вроде puppet, chef или cfengine для развертывания архитектуры, основанной на извлечении.

Вы также можете перейти к системе на основе LDAP (даже храня ssh-ключи в LDAP) - например, https://shellpower.wordpress.com/2015/05/26/ssh-public-key-authentication-with-ldap-on-ubuntu/ или перейти на другой механизм аутентификации - SSH поддерживает немало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .