Можно ли делиться файлом с закрытым ключом между несколькими компьютерами / службами?


110

Итак, мы все знаем, как использовать открытый ключ / закрытый ключ с использованием SSH и т. Д. Но как лучше всего их использовать / использовать повторно? Должен ли я держать их в безопасном месте навсегда? Я имею в виду, мне нужна была пара ключей для доступа к GitHub. Я создал пару с нуля и некоторое время использовал ее для доступа к GitHub. Затем я отформатировал свой жесткий диск и потерял эту пару. В общем, я создал новую пару и настроил GitHub для использования моей новой пары. Или это то, что я не хочу потерять?

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


Это не является прямым ответом на ваш вопрос, но желательно также иметь пароли для каждого ключа. В идеале, отдельные парольные фразы для каждого ключа (используйте менеджер паролей). Причина в следующем: если секретный ключ скомпрометирован (ноутбук был украден, компьютер взломан), то у вас есть некоторое время, прежде чем ключ может быть взломан, и вы можете заменить открытый ключ на всех машинах, на которых он есть До того, как ваш атакующий может. Источник: help.ubuntu.com/community/SSH/OpenSSH/…
— Ксандор Шифер,

Ответы:


86

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

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

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

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

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

5
Вот как я всегда использовал свою пару ключей. Я не понял, почему GitHub выступал за создание новой пары ключей в их инструкциях по настройке. Я проигнорировал это и использовал мою стандартную пару ключей. Я предполагаю, что они консервативны.
— toolbear74

Итак, вы говорите: «Не используйте один и тот же закрытый ключ на машинах в разных сферах», но что, если DNS разрешит данное имя хоста на любой машине в зависимости от вашего местоположения? Без совместного использования закрытого ключа я получаю предупреждения или сбои при попытке выполнить ssh или rsync с этим именем хоста, потому что ssh запутывается из-за наличия двух отдельных ключей для одного и того же имени хоста.
— Майкл

@Michael Я не понимаю, какая у вас проблема с пользовательскими ключами в описываемом вами сценарии, о чем эта тема. SSH может запутаться в ключах хоста , но, как пользователь, вы видите, что это открытый ключ хоста, а не приватный ключ хоста, и разделение секретного ключа хоста опасно - я бы рекомендовал, если хосты полностью эквивалентны (избыточность в случае неудачи одного из них) и, вероятно, даже тогда.
— Жиль

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

1
@JSBach Наличие отдельных ключей для каждой области позволяет вам определять более мелкие разрешения (ключ, хранящийся в области низкой безопасности A, разрешен для использования между компьютерами A, но вход в B требует более строгого коэффициента аутентификации) и позволяет отозвать их отдельно (область A была скомпрометирована, но я все еще могу войти в C из B). Единый вход - это тот случай, когда вы входите в систему с самым высоким уровнем безопасности, а затем вы можете войти в другое место. Я не знаю, какие риски они видят при наличии нескольких ключей на пользователя. Это будет тема для информационной безопасности .
— Жиль

4

Я не знаю, как лучше, но я могу сказать, какой у меня путь.

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

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


+1 Я собираюсь поговорить с моим боссом о новой политике использования ключей ;-) для каждого сервера / службы звучит даже более безопасно, чем для каждой сети
— Diskilla

1

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

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


1
Прочитайте лучший ответ здесь. Ты делаешь это неправильно. Дело не в том, что вы не можете сделать это таким образом, но вы не должны.
— PhilT

2
Не могу понять, почему все отрицательные. Университетские сети (например) часто имеют сетевой домашний каталог, поэтому один и тот же закрытый ключ используется пользователем везде, даже на ноутбуках, которые вам дают. Пока вы не копируете его в незашифрованном виде через Интернет, тогда я думаю, что это хорошо, если вы понимаете риск. Чертовски удобнее и так, не нужно добавлять свой открытый ключ в 2000 разных мест только потому, что вы вошли на другой компьютер.
— Асфанд Кази

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

0

В моей компании мы используем эти ключи для каждого конкретного пользователя. Это означает второй случай. У пользователя есть свой собственный ключ, и он используется для каждой машины, которую он использует для подключения к системе компании. Мое мнение - использовать один ключ для одной системы. Это означает, что вы используете этот ключ на каждом компьютере, который вам нужен для подключения к конкретным сетям. Для вашего случая это будет один ключ для GitHub и один ключ для системы компании. Так что, если ваш админ спросит вас снова, я бы дал ему тот же ключ, что и в прошлый раз. не новый. Но я не знаю, существует ли общая политика использования этих ключей, и с тех пор я делаю это неправильно. Это конечно возможно ;-)


0

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

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

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


3
Спасибо, но ваш ответ, в основном, не связан с моим вопросом. Смотрите ответ @ Diskilla.
— Бехранг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.