Совместное использование SSH-ключей на нескольких хостах

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

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

Мой вопрос заключается в том, что, поскольку эта служба распределена по нескольким хостам, является ли плохой практикой хранить закрытый ключ в безопасном месте (скажем, с помощью AWS KMS или какой-либо аналогичной службы) и считывать каждую из моих машин из этого защищенного места, или должен ли я иметь закрытый ключ для каждой из моих машин?


person Allen Suner    schedule 23.02.2016    source источник


Ответы (3)


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

person Warren Dew    schedule 23.02.2016
comment
Я не уверен на 100%, что следую за тобой. Вы говорите, что каждая машина должна ожидать, что ключ хранится локально, а если его нет, она должна получить его из централизованного безопасного места? - person Allen Suner; 23.02.2016
comment
Я говорю, что ключи для доступа к тому, что вы называете целевыми машинами, будут храниться в центральном расположении, но машины все равно должны иметь доступ к центральному местоположению. Таким образом, вам по-прежнему необходимо хранить один ключ или какой-либо пароль на каждой машине, но вам не нужно хранить их целую кучу, даже если вы обращаетесь к целой группе целевых машин. - person Warren Dew; 23.02.2016

Я бы ответил, что лучше иметь закрытый ключ для каждой машины.

Таким образом, если закрытый ключ будет украден, будет скомпрометирована только одна машина, а не все.

Кроме того, вам нужно только защитить закрытый ключ. Публичные ключи по определению являются публичными. Не стесняйтесь публиковать свой открытый ключ в Твиттере, если вам это нравится. Это будет иметь нулевое влияние.

person Sam Varshavchik    schedule 23.02.2016
comment
Да, я не думал, что мне придется защищать общественные. Я не так хорошо знаком с асимметричным шифрованием, могут ли у вас быть разные закрытые ключи, связанные с одним и тем же открытым ключом? - person Allen Suner; 23.02.2016
comment
Нет. Закрытый ключ всегда связан ровно с одним открытым ключом. И наоборот. - person Sam Varshavchik; 23.02.2016
comment
Ах ха. Я не уверен, что это будет тот подход, который я хочу тогда, мне нужно, чтобы этот открытый ключ был общим, чтобы его было легко распространять на целевые машины, на которые моя ферма будет входить. Тогда это представляет собой интересный компромисс. - person Allen Suner; 23.02.2016
comment
Ну, вы можете дать целевым машинам все открытые ключи. Но да, это компромисс между изоляцией и управляемостью. У вас также может быть набор пар ключей, который не 1-1 сопоставлен с клиентами, но все же обеспечивает некоторую изоляцию. - person ; 23.02.2016

Вы можете использовать децентрализованную систему PKI EMCSSH на основе блокчейна: http://emercoin.com/EMCSSH

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я автор этой системы, отвечу на любые вопросы

person olegarch    schedule 23.02.2016