Чи розумно мати декілька ключів SSH?


44

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

Чи дійсно наявність декількох ключів SSH покращує безпеку? Усі вони використовуються з однієї машини, розташовані в одній ~ / .ssh, більшість навіть мають однакову фразу.

Отже ... я повинен відмовитися від усієї системи і просто використовувати один ключ SSH для всього?

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


Це питання може краще відповідати інформаційній безпеці .
Герріт

Відповіді:


25

SSH-ключі використовують криптографію з відкритим ключем. Це означає, що те, що ви встановлюєте на всіх цих серверах, - це лише ваш відкритий ключ, про який ви хочете знати весь світ. Єдиний фактичний секрет - це ваш приватний ключ, який ви тримаєте заблокованим на власній машині. Так що так, я б сказав, що ви витрачаєте свій час.


20
Я думаю, що є поважні причини мати окремі ключі, і це не буде марною тратою часу. У випадку компромісного ключа ризик при цьому знижується. Пароль повинен бути різним для кожного ключа, я згоден.
jfmessier

Чи розумно мати різні пари ключів на різних машинах? Як різні екземпляри ОС VirtualBox?
Сантош Кумар

1
Ця відповідь глибоко ігнорує концепцію оборони, оскільки вона покладається на "ваш приватний ключ, який ви тримаєте заблокованим на власній машині". Розглянемо, наприклад, що відбувається, якщо ваш ноутбук викрадено, коли (один з) ваш приватний ключ (и) використовується ssh-агентом. Якщо у вас є кілька ключів, то будь-які, що ще були зашифровані, є безпечними. Я б не назвав це марною тратою часу.
Джон Бентлі

34

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

Враховуючи такі фактори, як ці, слід допомогти вам вирішити, чи справді вам потрібні окремі ключі. На моїх персональних машинах в моїй локальній мережі я, як правило, не турбуюсь про додаткові накладні витрати, намагаючись керувати кількома клавішами. Однак за межами моєї мережі я використовував би різні клавіші, кожен з унікальною парольною фразою. Але це лише моя особиста думка.


7
+1 для "оцінки моделі загрози". Це лише суть.
sleske

21

Ні, це не марно витрачати час на використання більш ніж одного ключа.

Більше різноманіття == менше ризику.

Це твердження Шпіффа є невірним.

Справа в тому, що відкритий ключ надає доступ власнику приватного ключа та нікому іншому.

Ризик, на який слід потурбуватись, - це автентифікація. Негідний сайт пересилає запити на аутентифікацію до вашого завдання агента. Якщо ви використовуєте лише один ключ, то навіть коли ваш агент завантажений лише один ключ , всі сайти відкриті для шахраїв.

Це не має нічого спільного з фразовими фразами , у вас може бути кілька ключів з однаковою парольною фразою, що не мало би значення тут. Тому що це не компромісна парольна фраза.

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

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

PS мораль цієї історії насторожено ставиться до пересилання агента


Припустимо, я генерую три SSH ключі, по одному для кожного з трьох серверів, на які я регулярно входжу. Одного разу, після того, як я вже ввійшов у всі три (мається на увазі, що ssh-агент кеширує парольні фрази для всіх трьох ключів), то за вашим аргументом, якщо мій ssh-агент буде порушений, усі три реєстраційні записи підлягають злому. У такому випадку наявність декількох ключів SSH не захистила мене. Я правильно тебе зрозумів?
sampablokuper

9

Я думаю, що є один хороший випадок використання для декількох відкритих ключів, і це якщо у вас є приватні ключі, що зберігаються на комп’ютерах у різних областях довіри. Тому я, як правило, зберігаю один ключ, який є моїм "робочим" ключем, а інший - мій "домашній" ключ, просто тому, що приватний ключ для моїх "домашніх" речей не зберігається на моєму робочому комп'ютері, і навпаки.


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

3

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

Коли ми створюємо пару ключів 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 ключ-пару (З passwd) вибрати хороший.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.