Перейти до змісту

Відкритий і закритий ключ SSH

Передумови

  • Певний комфорт роботи з командного рядка
  • Сервер або робочі станції Linux із встановленим openssh
  • Додатково: знайомство з дозволами на файли та каталоги Linux

Вступ

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

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

Цей документ допоможе вам створити ключі та налаштувати сервери для легкого доступу за допомогою цих ключів.

Процес генерації ключів

Усі наступні команди виконуються з командного рядка вашої робочої станції Rocky Linux:

ssh-keygen -t rsa

Що відображатиме наступне:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

Натисніть ENTER, щоб прийняти розташування за замовчуванням. Далі система покаже:

Enter passphrase (empty for no passphrase):

Натисніть ENTER тут. Нарешті він попросить вас повторно ввести парольну фразу:

Введіть ту саму парольну фразу ще раз:

Натисніть ENTER востаннє.

Тепер у вашому каталозі .ssh має бути пара відкритих і закритих ключів типу RSA:

ls -a .ssh/
.  ..  id_rsa  id_rsa.pub

Вам потрібно надіслати відкритий ключ (id_rsa.pub) на кожну машину, до якої ви збираєтеся отримати доступ. Перш ніж це зробити, вам потрібно переконатися, що ви можете підключитися до серверів, на які ви надсилаєте ключ, через SSH. У цьому прикладі використовуються три сервери.

Ви можете отримати до них доступ за допомогою SSH за допомогою імені DNS або IP-адреси, але в цьому прикладі використовується ім’я DNS. Наші приклади серверів: web, mail, та portal. Для кожного сервера ви вводите SSH (ботаніки люблять використовувати SSH як дієслово) і залишаєте відкритим вікно терміналу:

ssh -l root web.ourourdomain.com

Якщо ви можете без проблем увійти на всіх трьох машинах, наступним кроком буде відправка вашого відкритого ключа на кожен сервер. Зробіть це за допомогою команди ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@web.ourdomain.com

Повторіть цей крок з кожною з ваших трьох машин. Це заповнить файл authorized_keys на кожному сервері вашим відкритим ключем.

Спробуйте ще раз підключитися до сервера через SSH із робочої станції Rocky Linux. Ви не повинні отримати запит на введення пароля.

Безпека каталогу SSH і authorized_keys

На кожній із ваших цільових машин переконайтеся, що застосовано такі дозволи:

chmod 700 .ssh/
chmod 600 .ssh/authorized_keys

Author: Steven Spencer

Contributors: Ezequiel Bruni, Ganna Zhyrnova