Як створити та встановити ключі SSH з оболонки Linux

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

Чому паролі є проблемою?

Secure Shell (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]

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

Введіть свою парольну фразу та натисніть кнопку Розблокувати.

Після того, як ви ввели парольну фразу в сеансі терміналу, вам не потрібно вводити її знову, поки вікно терміналу відкрите. Ви можете підключатися та відключатися від різних віддалених сеансів без повторного введення парольної фрази.

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

Після введення парольної фрази, ви під’єднаєтеся до віддаленого комп’ютера.

Щоб перевірити процес від початку до кінця, від’єднайтеся за допомогою команди exit і знову підключіться до віддаленого комп’ютера з того самого вікна терміналу.

ssh [email protected]

Ви підключитесь до віддаленого комп’ютера без необхідності введення пароля чи парольної фрази.

Без Паролів, але з Підвищеною Безпекою

Експерти з кібербезпеки говорять про так зване “тертя безпеки”. Це невеличкі незручності, які необхідно прийняти для підвищення безпеки. Зазвичай, для використання більш безпечного методу роботи потрібно зробити декілька додаткових кроків. Більшість людей це не влаштовує. Вони віддають перевагу меншій безпеці, але без “тертя”. Така людська натура.

З SSH-ключами ви отримуєте вищий рівень безпеки та зручність одночасно. Це безсумнівна вигода.