Технічна інформація

Підключення до серверу за допомогою ssh-key

Kлючі ssh забезпечують простий, але дуже безпечний спосіб входу на сервер з вашого локального комп'ютера, без введення пароля. Зв’язки ключів – це пари, які забезпечені шифруванням, і можуть бути використані для перевірки автентичності клієнта на сервері SSH. Пapa ключiв складається з відкритого ключа та закритого ключа

  • Відкритий (публічний) ключ можна вільно передавати, не побоюючись негативних наслідків, його нам потрібно скопіювати на сервер, до якого в майбутньому будемо підключатись.

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

Для налаштування автентифікації SSH за допомогою ключів потрібно згенерувати пару ключів та додати публічний ключ до каталогу .ssh у домашній папці сайту на вашому сервері.

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

Мають бути файли id_rsa або id_rsa.pub — це приватні ключі

Якщо ключі у вас є, тоді переходимо до Крокy №3.

Крок 2. Якщо ключа немає або немає директорії, можна виконати команду в консолі вашого комп'ютера/ноутбука:

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. Вона не обов'язкова, проте якщо ви її створите, вам прийдеться вводити її кожного разу при підключенні.

Крок 3. Можете скористатися командою для відкриття файлу безпосередньо у терміналі, наприклад:

nano ~/.ssh/id_rsa.pub

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

Скопіюйте ключ повністю, з першого символу до останього включаючи дані користувача та назву ПК

Вигляд ключ має приблизно наступний:

pub_key

Крок 4. Тепер підключіться до сервера і введіть наступну команду:

mkdir -p .ssh

Ця команда створить директорію, а якщо вона вже присутня, то нічого не відбудеться

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

.ssh/authorized_keys

Зберігаємо файл комбінацією клавіш CTRL+o та виходимо з редактора nano комбінацією клавіш CTRL+x

Крок 5. Перевіряємо підключення.

Зверніть увагу, що для SSH/FTP підключення, вам слід спершу додати вашу ІР адресу в список дозволених, або дозволити доступ до сервера будь якого хоста (крок №10 цієї інструкції)

Після цього перевіряємо з вашого локального комп'ютера/ноутбука підключення, використовуючи команду

ssh Username@IP_address

де Username - ваш логін ssh користувача IP_address - це ІР адреса вашого сервера, або хост-нейм (наприклад vs0000.mirohost.net, в результаті команда матиме вигляд ssh testuser@vs0000.mirohost.net

Крок 6. Для теки з ключами (.ssh) та файлу authorized_keys потрібно встановити наступні доступи, ввівши на сервері команду:

chmod 700 .ssh && chmod 600 .ssh/authorized_keys && chmod 755

Також вам може стати в пригоді як підключитись по SSH