Чи потрібно мені мати пароль для мого ключа SSH RSA?


71

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

Зараз я намагаюся налаштувати все, щоб я міг автоматизувати щоденні резервні копії. Для цього я планую використовувати rsync через ssh. З метою безпеки, а також для зручності автоматизації, я планував відключити вхід з паролем ssh і використовувати лише перевірку ключа rsa. Ну, якщо я маю набір парольних фраз rsa, то мені все одно доведеться ввести пасаж, і це проблема.

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

На комп’ютерах, про які йдеться, працює Ubuntu 10.10, SME Server та OSX 10.6, якщо це якось зміниться.


5
Справді не повинно бути жодних втрат у безпеці, якщо на вашому ключі немає парольної фрази. Підтримка цілісності безпеки ключа в цей момент стає невід'ємною, оскільки якщо хтось має можливість скопіювати його, то немає секретного ключа, який би заважав їм використовувати його.
Кріс Марісіч

1
Можливо, це лише я, але я поняття не маю, що намагається сказати вищевказаний коментар.
підкреслюйте_d

3
@underscore_d В основному він говорить: Не впливайте на безпеку SSH, щоб мати чи не мати парольні фрази для ваших ключів, АЛЕ ви повинні тримати свої ключі в локальній безпеці.
Хартатор

Відповіді:


89

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

Якщо хтось має змогу отримати доступ до цього приватного ключа, вам слід сприймати це як належне, щоб вони мали доступ (ed) / компрометували всі пристрої, налаштовані з відкритим ключем. Такі речі, як .bash_history або .ssh / config, полегшують це, навіть якщо ваш .ssh / known_hosts затуманений.

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


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

  2. Додаючи ключ до файлу дозволеного_кейса, ви можете заблокувати його, щоб мати змогу запускати лише певну команду або використовувати її лише з певного хоста.

    Перегляньте man sshі шукайте команду = і від =

    Синтаксис має щось на кшталт:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    тобто поп 'rsync' там, і лише вашим ключем може бути викликаний 'rsync', і лише з IP-адреси 1.2.3.4. Кілька IP-адрес можна розділити на ,. Імена хостів також підтримуються.

  3. Ще одна річ, яка спадає на думку, - це директива "Дозволити користувач" у вашому sshd_config

    Дозволитикористувачі

    За цим ключовим словом може супроводжуватися список моделей імен користувачів, розділених пробілами. Якщо вказано, вхід дозволений лише для імен користувачів, які відповідають одному з шаблонів. '*' і '?' може використовуватися як підстановка символів у візерунках. Дійсні лише імена користувачів; числовий ідентифікатор користувача не розпізнається. За замовчуванням вхід дозволений для всіх користувачів. Якщо шаблон має форму USER @ HOST, тоді USER та HOST перевіряються окремо, обмежуючи вхід для конкретних користувачів від конкретних хостів.

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


1
Красиве - це саме те, що мені потрібно було знати. Дуже дякую!
eckza

3
Немає проблем, просто не сприймайте це як вичерпний список! :-) Такі речі, як регулярний перегляд auth.log / secure тощо.
PriceChild

3
Отже, аудит замість того, щоб турбуватися про крадіжку вашої фрази?
Ehtesh Choudhury

3
@shurane Робіть обоє!
PriceChild

4

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


-4

Особисто я використовую DSA, а не RSA, головним чином тому, що це те, що я завжди використовував, і я знаю, що це "просто працює", але теорія, напевно, однакова. Ви могли б замінити dsaз rsaв нижче.

На джерелі:

$ ssh-keygen -t dsa

Потім скопіюйте вміст .ssh/id_dsa.pubфайлу .ssh/authorized_keysв обліковий запис користувача у пункті призначення.

Тоді ви просто зможете переходити між джерелом та пунктом призначення без паролів.


1
Чи є якісь причини, що ви виступаєте за dsa за rsa? Я частіше бачив протилежне рекомендоване.
PriceChild

@PriceChild: AFAIK, їх безпека більш-менш рівнозначна (якщо припустити достатній розмір ключа). Сам не будучи криптографом, я довіряю рішенню OpenSSH та GnuPG використовувати RSA в якості алгоритму ключа за замовчуванням. Дивіться також це питання .
grawity

Ніяка реальна причина - головним чином особистий вибір - те, і те, що RSA був взламаний нещодавно та вкрадений чутливий код - як це стосується ключів RSA, я не маю уявлення (хто це робить?), Але я завжди завжди використовував DSA, оскільки це здавалося більш захищеним .
Majenko

9
Мені подобається, що злом на "компанії RSA" не впливає на безпеку "алгоритму RSA". Ознайомтесь також із безпечним.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA було названо на честь алгоритму криптографії відкритого ключа RSA, який, в свою чергу, отримав назву від ініціалів своїх співавторів: Рона Рівеста, Аді Шаміра та Лен Адлеман ».
PriceChild

6
@Matt: Єдине , що у них спільне - це ім'я. Асиметричний крипто алгоритм RSA є чистою математикою, тому немає можливості його послабити через прорив у деякі системи корпорації.
grawity
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.