PHP Manual

Зв'язок по SSH і ключу RSA2

12. 11. 2022

SSH - мережевий протокол для передачі зашифрованих файлів і терміналів. SSH найчастіше використовується для віддаленого керування веб-сервером та безпечної передачі файлів. На відміну від FTP, він пропонує власне зашифроване з'єднання. Зв'язок по SSH здійснюється через порт за замовчуванням `22`. З'єднання ініціалізується ім'ям користувача та адресою сервера призначення. Для аутентифікації можна використовувати пароль (не рекомендується) або ключ SSH RSA2 (рекомендується).

Отримання (генерація) ключа

Перед тим, як підключитися до сервера, нам необхідно отримати (або згенерувати) наш перший ключ SSH RSA2. Важливо, що це алгоритм RSA2. Це пов'язано з тим, що є низка ключів, і не всі вони можуть бути використані.

В Linux для його генерації використовується утиліта `ssh-keygen, якій ми вказуємо складність ключа (в даному випадку 4096) та електронну пошту авторизованого користувача:

ssh-keygen -t rsa -b 4096 -C "jan@barasek.com"

Після запуску команди нам буде запропоновано вказати шлях для зберігання ключа і будь-який "пароль" (пароль авторизації). Не вводьте нічого в якості шляху (місце за замовчуванням обирається автоматично) і введіть парольну фразу за бажанням (якщо ви це зробите, вам потрібно буде вводити той самий пароль кожного разу перед використанням ключа).

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

Генерація SSH-ключа в Windows

На жаль, Windows не має шляху за замовчуванням для ключа SSH. Тому ідеальним варіантом є встановлення, наприклад, утиліти Putty та PuttyGen для генерації ключа. Завжди обирайте алгоритм RSA2. Знову ж таки, буде згенеровано пару ключів, тому зберігайте їх десь надійно. Перед використанням SSH-ключа в Putty необхідно вказати шлях до диска, з якого буде отримано ключ. В Linux це не потрібно, там є шлях до диска за замовчуванням.

Безпека ключів

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

Дуже важливо ніколи не втрачати особистий ключ. Втратити його - значить розірвати всю комунікацію!

Зазвичай рекомендується генерувати унікальну пару відкритий/закритий ключ для кожного пристрою та користувача, щоб зменшити ймовірність витоку. Однак, якщо ви хочете перенести ключ між пристроями, це можливо. Ключ SSH знаходиться на рівні пароля, тому при перенесенні його на іншу машину з'єднання відразу працює.

Деякі сервери пам'ятають, з яким пристроєм вони востаннє спілкувалися по SSH. Тому не виключено, що після перенесення ключа на новий комп'ютер з'єднання не буде працювати. В такому випадку необхідно очистити кеш ключів на сервері.

Авторизація ключа для підключення до сервера

Для підключення до сервера використовується команда ssh. Просто введіть користувача та домен:

ssh root@baraja.cz

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

Якщо ви хочете аутентифікуватися на сервері за допомогою SSH-ключа замість пароля, вам необхідно передати серверу свій відкритий ключ.

Просто виведіть його за допомогою команди:

cat ~/.ssh/id_rsa.pub

І скопіювати весь його вміст на цільовий сервер за адресою ~/.ssh/authorized_keys. Якщо у Вас більше одного ключа, то кожен в окремому рядку.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2024