41

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

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

Итак ... я должен отказаться от всей системы и просто использовать один ключ SSH для всего?

[ОБНОВЛЕНИЕ 2015-08-05] Github публикует ваш открытый ключ, и ваш SSH-клиент может отправлять все ваши открытые ключи на каждый сервер, в зависимости от конфигурации, таким образом, если вам нужен сторонний SSH-сервер, который знает вашу личность при подключении , вы должны использовать несколько ключей SSH, хотя, на мой взгляд, это параноик.

5 ответов5

29

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

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

23

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

19

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

Больше разнообразия == меньше риска.

Это утверждение Спиффа неверно.

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

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

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

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

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

PS Мораль этой истории заключается в том, чтобы быть осторожным с переадресацией агентов

9

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

1

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

Когда мы создаем пару ключей SSH, нас просят предоставить фразу-пароль для добавления дополнительного слоя для защиты закрытого ключа, как показано ниже:

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

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

Объединяя , использовать ли несколько пар ключей SSH и вводить или нет дополнительный пароль, у нас есть по крайней мере четыре пути. И давайте предположим, что все пары ключей и файл config хранятся в ~/.ssh/ .

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

В следующей таблице дан простой рейтинг безопасности (большее число означает более безопасный):

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

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

Тогда не будем думать об удобстве.

Но больше пар ключей и больше паролей также делают нашу жизнь менее удобной, в следующей таблице дан простой рейтинг безопасности (большее число означает более безопасный):

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Таким образом, в общей ситуации, если нам приходится одновременно идти на компромисс с безопасностью и удобством , мы можем умножить две оценки, и, возможно, одна пара ключей SSH (WITH passwd) будет хорошей для выбора.

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