Поставтеся серйозно до кібербезпеки та використовуйте ключі SSH для доступу до віддаленого входу. Вони є більш безпечним способом підключення, ніж паролі. Ми покажемо вам, як створити, встановити та використовувати ключі SSH в Linux.
Що не так з паролями?
Захищена оболонка (SSH) — це зашифрований протокол, який використовується для входу в облікові записи користувачів на віддалених комп’ютерах, подібних до Linux або Unix. Зазвичай такі облікові записи користувачів захищені за допомогою паролів. Коли ви входите на віддалений комп’ютер, ви повинні вказати ім’я користувача та пароль для облікового запису, в який ви входите.
Паролі є найпоширенішим засобом захисту доступу до обчислювальних ресурсів. Незважаючи на це, безпека на основі пароля має свої недоліки. Люди вибирають слабкі паролі, обмінюються паролями, використовують той самий пароль у кількох системах тощо.
Ключі SSH набагато безпечніші, і коли вони налаштовані, їх так само легко використовувати, як і паролі.
Що робить ключі SSH безпечними?
Ключі SSH створюються та використовуються парами. Два ключа пов’язані та криптографічно захищені. Один – це ваш відкритий ключ, а інший – закритий ключ. Вони прив’язані до вашого облікового запису користувача. Якщо кілька користувачів на одному комп’ютері використовують ключі SSH, кожен з них отримає свою власну пару ключів.
Ваш закритий ключ встановлюється у вашій домашній папці (зазвичай), а відкритий ключ інстальовано на віддаленому комп’ютері або комп’ютерах, до яких вам потрібно буде отримати доступ.
Ваш особистий ключ має бути в безпеці. Якщо він доступний для інших, ви перебуваєте в такому ж положенні, як якщо б вони знайшли ваш пароль. Розумна — і настійно рекомендована — застереження полягає в тому, щоб ваш закритий ключ був зашифрований на вашому комп’ютері за допомогою надійного парольна фраза.
Відкритим ключем можна надавати вільний доступ без будь-якого компромісу для вашої безпеки. Неможливо визначити, що таке закритий ключ, з перевірки відкритого ключа. Закритий ключ може шифрувати повідомлення, які може розшифрувати тільки закритий ключ.
Коли ви робите запит на з’єднання, віддалений комп’ютер використовує свою копію вашого відкритого ключа для створення зашифрованого повідомлення. Повідомлення містить ідентифікатор сеансу та інші метадані. Розшифрувати це повідомлення може лише комп’ютер, у якого є особистий ключ — ваш комп’ютер.
Ваш комп’ютер отримує доступ до вашого приватного ключа та розшифровує повідомлення. Потім він надсилає власне зашифроване повідомлення назад на віддалений комп’ютер. Серед іншого, це зашифроване повідомлення містить ідентифікатор сеансу, отриманий з віддаленого комп’ютера.
Віддалений комп’ютер тепер знає, що ви маєте бути тим, ким ви себе є, тому що лише ваш закритий ключ може витягти ідентифікатор сеансу з повідомлення, яке він надіслав на ваш комп’ютер.
Переконайтеся, що у вас є доступ до віддаленого комп’ютера
Переконайтеся, що ви можете віддалено підключитися до віддаленого комп’ютера та увійти в нього. Це доводить, що ваше ім’я користувача та пароль мають дійсний обліковий запис, налаштований на віддаленому комп’ютері, і що ваші облікові дані правильні.
Не намагайтеся нічого робити з ключами SSH, доки ви не переконаєтеся, що можете використовувати SSH з паролями для підключення до цільового комп’ютера.
У цьому прикладі людина з обліковим записом користувача під назвою dave входить на комп’ютер під назвою wdzwdz. Вони збираються підключитися до іншого комп’ютера під назвою Sulaco.
Вони вводять таку команду:
ssh [email protected]
У них запитують пароль, вони вводять його, і вони підключаються до Sulaco. Підказка командного рядка змінюється, щоб підтвердити це.
Це все підтвердження, яке нам потрібно. Таким чином, користувач dave може відключитися від Sulaco за допомогою команди exit:
exit
Вони отримують повідомлення про відключення, і їх командний рядок повертається [email protected]
Створення пари ключів SSH
Ці інструкції були перевірені на дистрибутивах Ubuntu, Fedora та Manjaro Linux. У всіх випадках процес був ідентичним, і не було необхідності встановлювати будь-яке нове програмне забезпечення на жодній з тестових машин.
Щоб створити ключі SSH, введіть таку команду:
ssh-keygen
Починається процес генерації. Вас запитають, де ви хочете зберігати ключі SSH. Натисніть клавішу Enter, щоб прийняти розташування за замовчуванням. Дозволи на папку забезпечать її лише для використання.
Тепер вас попросять ввести парольну фразу. Ми наполегливо радимо ввести тут парольну фразу. І згадайте, що це таке! Ви можете натиснути Enter, щоб не мати парольної фрази, але це не дуже гарна ідея. Парольна фраза, що складається з трьох або чотирьох незв’язаних слів, нанизаних разом, утворить дуже надійну парольну фразу.
Вам буде запропоновано ввести ту саму парольну фразу ще раз, щоб переконатися, що ви ввели те, що ви думали, що ввели.
Ключі SSH створюються та зберігаються для вас.
Ви можете ігнорувати «randomart», який відображається. Деякі віддалені комп’ютери можуть показувати вам своє випадкове зображення кожного разу, коли ви підключаєтеся. Ідея полягає в тому, що ви впізнаєте, якщо випадкове зображення зміниться, і будете підозрювати з’єднання, оскільки це означає, що ключі SSH для цього сервера були змінені.
Установка відкритого ключа
Нам потрібно встановити ваш відкритий ключ на Sulaco, віддалений комп’ютер, щоб він знав, що відкритий ключ належить вам.
Ми робимо це за допомогою команди ssh-copy-id. Ця команда встановлює з’єднання з віддаленим комп’ютером, як звичайна команда ssh, але замість того, щоб дозволити вам увійти, вона передає відкритий ключ SSH.
ssh-copy-id [email protected]
Хоча ви не входите в систему на віддаленому комп’ютері, вам все одно потрібно пройти автентифікацію за допомогою пароля. Віддалений комп’ютер повинен визначити, до якого облікового запису користувача належить новий ключ SSH.
Зауважте, що пароль, який ви повинні ввести тут, є паролем облікового запису користувача, в який ви входите. Це не та парольна фраза, яку ви щойно створили.
Коли пароль було перевірено, ssh-copy-id передає ваш відкритий ключ на віддалений комп’ютер.
Ви повернетеся до командного рядка вашого комп’ютера. Ви не підключені до віддаленого комп’ютера.
Підключення за допомогою ключів SSH
Виконаємо пропозицію та спробуємо підключитися до віддаленого комп’ютера.
ssh [email protected]
Оскільки процес з’єднання потребує доступу до вашого приватного ключа, а також оскільки ви захищали ключі SSH за парольною фразою, вам потрібно буде надати свою парольну фразу, щоб з’єднання могло продовжитися.
Введіть свою парольну фразу та натисніть кнопку Розблокувати.
Після того, як ви ввели свою парольну фразу під час сеансу терміналу, вам не доведеться вводити її знову, поки у вас відкрите вікно терміналу. Ви можете підключатися та відключатися від будь-якої кількості віддалених сеансів, не вводячи знову свою парольну фразу.
Ви можете поставити прапорець біля опції «Автоматично розблоковувати цей ключ, коли я ввійшов у систему», але це знизить вашу безпеку. Якщо ви залишите свій комп’ютер без нагляду, будь-хто зможе встановити з’єднання з віддаленими комп’ютерами, які мають ваш відкритий ключ.
Після того, як ви введете свою парольну фразу, ви під’єднаєтеся до віддаленого комп’ютера.
Щоб ще раз перевірити процес від кінця до кінця, від’єднайтеся за допомогою команди exit і знову під’єднайтеся до віддаленого комп’ютера з того самого вікна терміналу.
ssh [email protected]
Ви будете підключені до віддаленого комп’ютера без необхідності вводити пароль або парольну фразу.
Без паролів, але підвищена безпека
Експерти з кібербезпеки говорять про те, що називається тертям безпеки. Це той незначний біль, з яким вам потрібно змиритися, щоб отримати додаткову безпеку. Зазвичай для прийняття більш безпечного методу роботи потрібно кілька додаткових кроків. І більшості людей це не подобається. Вони насправді вважають за краще меншу безпеку та відсутність тертя. Така природа людини.
Завдяки ключам SSH ви отримуєте підвищену безпеку та зручність. Це безсумнівний виграш.