SSH: Используете ли вы одну пару секретный / открытый ключ для каждой удаленной машины? Или единую пару для всех?

23

Если вы хотите иметь SSH-логин на основе открытого ключа для нескольких машин, используете ли вы один закрытый ключ и ставите один и тот же открытый ключ на все машины? Или у вас есть одна пара секретных / открытых ключей для каждого соединения?

Ник
источник
@Jim Zajkowski: Я не уверен, как ответить на ваш комментарий, но это для вас. С помощью переключателей можно контролировать доступ к серверам, подключенным к Интернету, которые находятся в демилитаризованной зоне (за межсетевым экраном). Скажем, у вас есть «server_a» и «server_b». A находится в сети, а B находится вне сети. Внешние клиенты соединяются с B. Трафик, который идет от A до B, должен контролироваться и наоборот. Таким образом, вы добавляете поле перехода с двумя сетевыми картами. Тот, который соединяет его с внутренней сетью (A), и тот, который соединяет его с внешней сетью (B). Итак, из А вы переходите в поле перехода, а затем в Б. Одно из преимуществ
@IMTheNachoMan - я преобразовал ваш ответ в комментарий, хотя лучшее место для него было бы в виде комментария непосредственно внутри ответа, содержащего комментарий, на который вы отвечаете (у меня немного закружилась голова). Если у вас есть какие-либо вопросы, перейдите к мета и спросите. Спасибо за разъяснения независимо.
Кара Марфия
security.stackexchange.com/questions/40050/...
sancho.s восстановило Моника

Ответы:

27

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

romble
источник
4

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

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

Ли Б
источник
2

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

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

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

Еще одна альтернатива, используемая несколькими крупными корпорациями (и я уверен, что и маленькими), заключается в том, чтобы никогда не позволять «пользователю» использовать предварительно общие ключи, а вместо этого иметь возможность войти в окно «переход» или «концентратор». , suсоответствующему подключающемуся пользователю, а затем SSH оттуда к серверам, которыми они должны управлять.

Кроме того, если вы используете систему управления, такую ​​как платформа HP Server Automation, удаленное администрирование управляемых серверов становится более упрощенным процессом.

кроличий садок
источник
1
Каждый должен хранить свои ключи в зашифрованном виде. Можете ли вы объяснить преимущества безопасности "прыжка", потому что я не вижу его.
Джим Зайковски
как реализовано в нескольких банках, с которыми мне приходилось сталкиваться, и в других местах идея «коробки перехода» заключается в том, что вы не можете получить доступ к серверам в демилитаризованной зоне, подсети и т. д. со своим «обычным» пользователем. Вы подключаетесь к блоку перехода, а затем в зарегистрированной форме, su для пользователя управления, чтобы подключиться к другой сети.
Уоррен
2
Преимущество безопасности == 0, другими словами.
Уомбл
@ Womble - возможно, это правильно. Но это то, что делают многие параноидальные компании. Поскольку suсеанс записывается в журнал, его можно проверить.
Уоррен
1
почему только suсеансы могут быть проверены, а не другие?
Жоао Портела
1

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

Наиболее разумным ответом для меня был бы тот, в котором предлагалось делать это ТОЛЬКО, если бы он включал отдельные административные роли без особых совпадений. Так, что это могут быть разные люди, выполняющие разные роли, или на разных рабочих станциях, или что-то еще. В этом случае у вас есть больше уникальных вещей для каждой отдельной роли, так что это более оправданно.

Фред
источник
0

Для простоты управления несколькими SSH-совместимыми серверами вы можете проверить cssh . Вы можете комбинировать cssh с парольными SSH-ключами, чтобы значительно расширить возможности управления несколькими серверами одновременно.

Greeblesnort
источник
2
Как вам удается получать «сумасшедшие ошибки» в прославленном цикле for?
Уомбл
Что-то в этом кажется очень смертельным ... Если вы совершите ошибку, вы испортите все свои серверы сразу, а не один!
Ник
@ Ник - правда, но это почти всегда тот случай, когда я отвечаю за поле =) @ womble - а? к каким «сумасшедшим ошибкам» вы относитесь?
Greeblesnort
1
В верхней части страницы проекта вы указали ссылку: «ПРИМЕЧАНИЕ. Я скоро вернусь к этому проекту, чтобы исправить в нем сумасшедшие ошибки». Тот факт, что уведомление все еще там два года спустя, больше не увеличивает мою веру в него.
womble