Зв’язки ключів – це пари, які забезпечені шифруванням, і можуть бути використані для перевірки автентичності клієнта на сервері SSH. Пapa ключiв складається з відкритого ключа та закритого ключа.
Відкритий (публічний) ключ можна вільно передавати, не побоюючись негативних наслідків, його нам потрібно скопіювати на сервер, до якого в майбутньому будемо підключатись.
Закритий ключ зберігається клієнтом і має бути абсолютно захищений. Порушення безпеки закритого ключа може дозволити зловмисникам отримати доступ до серверів, на яких використовується відповідний відкритий ключ, без потреби додаткової автентифікації. В якості додаткового запобіжного заходу ключ можна зашифрувати на диску за допомогою парольної фрази. Цей ключ залишається на нашому локальному комп’ютері або ноутбуці.
Для налаштування автентифікації SSH за допомогою ключів потрібно згенерувати пару ключів та додати публічний ключ до каталогу .ssh у домашній папці сайту на вашому сервері.
Перед початком роботи, переконайтеся, що на вашому локальному комп'ютері або ноутбуці є ключ. Дані зберігаються в домашній директорії користувача, в теці .ssh, тож перевірка файлів виконується в цій же теці. Мають бути файли id_rsa або id_rsa.pub — це приватні ключі
Нижче описано приклад на снові ОС Linux
Крок 1. Якщо ключа немає або немає директорії, можна виконати команду в консолі вашого комп'ютера/ноутбука:
ssh-keygen -t rsa -b 2048
Після будуть декілька запитань до вас, наприклад:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
B основному, рекомендується просто залишити все як є (просто натисніть Enter), таким чином генератор ключів створить пару ключів у місці розташування за умовчанням
При запиті на секретну фразу "Enter passphrase (empty for no passphrase):" вкажіть секретну або залиште поле пустим та клікніть Enter. Вона не обов'язкова, проте якщо ви її створите, вам прийдеться вводити її кожного разу при підключенні.
Крок 2. Можете скористатися командою для відкриття файлу безпосередньо у терміналі, наприклад:
nano ~/.ssh/id_rsa.pub
ця команда відкриє файл id_rsa.pub, де зазвичай зберігається публічний ключ, у текстовому редакторі nano прямо у терміналі.
Скопіюйте ключ повністю, з першого символу до останього включаючи дані користувача та назву ПК
Вигляд ключ має приблизно наступний:
Крок 3. Тепер підключіться до сервера і введіть наступну команду:
mkdir -p .ssh
Ця команда створить директорію, а якщо вона вже присутня, то нічого не відбудеться
Після цього вставте публічний ключ який ви бачили на вашому локальному комп'ютері в файл authorized_keys. Якщо там містяться попередні ключі, їх не видаляємо, а новий ключ вводимо з нового рядка.
.ssh/authorized_keys
Зберігаємо файл комбінацією клавіш CTRL+o та виходимо з редактора nano комбінацією клавіш CTRL+x
Крок 4. Перевіряємо підключення.
Зверніть увагу, що для SSH/FTP підключення, вам слід спершу додати вашу ІР адресу в список дозволених, або дозволити доступ до сервера будь якого хоста (крок №10 цієї інструкції)
Після цього перевіряємо з вашого локального комп'ютера/ноутбука підключення, використовуючи команду
ssh Username@IP_address
де Username - ваш логін ssh користувача IP_address - це ІР адреса вашого сервера, або хост-нейм (наприклад vs0000.mirohost.net, в результаті команда матиме вигляд ssh testuser@vs0000.mirohost.net
Крок 5. Для теки з ключами (.ssh) та файлу authorized_keys потрібно встановити наступні доступи, ввівши на сервері команду:
chmod 700 .ssh && chmod 600 .ssh/authorized_keys && chmod 755
Приклад генерування ssh-ключа за допомогою PuTTY на Windows
Завантаження PuTTY та PuTTYgen
- Завантажте PuTTY [з офіційного сайту] (https://www.putty.org/). Вам знадобляться дві програми: PuTTY та PuTTYgen
- Встановіть PuTTY, якщо программа ще не встановлена
Запуск PuTTYgen
- Відкрийте PuTTYgen. Для цього можна знайти його в меню "Пуск" або запустити puttygen.exe, який знаходиться в директорії, куди було встановлено PuTTY.
Генерація нового SSH-ключа В PuTTYgen оберіть тип ключа, який хочете створити:
- Для більшої безпеки вибери RSA або Ed25519.
- Якщо ти обираєте RSA, можете вибрати довжину ключа (рекомендується 2048 або 4096 біт для RSA).
- Натисніть кнопку Generate.
- Далі потрібно буде згенерувати випадкові дані, рухаючи мишку в випадковому порядку в вікні PuTTYgen, щоб ключ сгенерувався.
Збереження ключа
- Після генерації ключа побачите публічний ключ в PuTTYgen. Для зручності, можете вказати коментар до ключа в полі Key comment, при бажанні.
- Введіть пароль в поле Key passphrase та Confirm passphrase (рекомендується для додаткової безпеки).
- Натисніть кнопку Save private key та оберіть місце для збереження приватного ключа (файл .ppk).
Щоб зберегти публічний ключ, можете скопіювати текст з поля Public key for pasting into OpenSSH authorized_keys file і зберегти його в окремий файл (наприклад, id_rsa.pub).
Використання ключа в PuTTY
- Відкрите PuTTY.
- Введи hostname або IP-адресу сервера в полі "Host Name (or IP address)".
- В лівому меню Category, перейдіть до "Connection" -> "SSH" -> "Auth".
- Натисніть кнопку "Browse..." і виберіть приватний ключ, який зберегли раніше (файл .ppk).
- Перейдіть назад в "Session" і натисніть "Save" для збереження сеансу з цією конфігурацією, або натисніть "Open", щоб підключитися до сервера.
Також вам може стати в пригоді як підключитись по SSH