Розбираємось, як підключитися по SSH у Linux, MacOS та Windows. Розглянемо два способи: з використанням пароля та без нього (за допомогою SSH-ключів).
Що потрібно для підключення до сервера по SSH
Для підключення по SSH знадобляться такі дані:
- ім’я користувача та пароль;
- IP-адреса або хостнейм сервера;
- порт (за замовчуванням 22, у нас на віртуальному хостингу — 21098, на іншому хостингу може бути інший).
Зазвичай цю інформацію можна знайти у листі про активацію хостингу.
Підключення по SSH в панелі керування хостингом
Цей найбільш простий та лінивий спосіб, тому що для нього не потрібно навіть знати деталі підключення до сервера. Він підійде, якщо доступ SSH потрібен рідко або знадобився раптово, а ви не пам’ятаєте пароль.
Додаток для SSH-доступу до сервера є у більшості панелей. У себе на віртуальному хостингу ми використовуємо cPanel, потрапити до неї можна з особистого кабінету. Там на головній сторінці у секції «Розширений» є додаток «Термінал».
Підключення по SSH в Linux або MacOS
Це можна зробити у вбудованому в систему додатку «Термінал» або встановити сторонній SSH-клієнт. Ось декілька прикладів:
Для підключення використовуйте таку команду:
ssh ім'я_користувача@адреса_сервера -p порт
Якщо ви вперше підключаєтеся по SSH до цього сервера, програма скаже «я поки що не знаю цей сервер, ви точно хочете підключитися?». Введіть yes та натисніть Enter.
Далі SSH-клієнт попросить ввести пароль. Символи при введенні пароля зазвичай не відображаються з міркувань безпеки.
Після цього у командному рядку зміниться ідентифікатор користувача. Це означає, що вас підключило.
Повідомлення «Permission denied» або «Connection refused» означає, що підключитися не вдалося. Можливо, ви неправильно ввели пароль або використовуєте неправильний порт. Або підключення по SSH заборонено в параметрах сервера.
Щоб перервати SSH-підключення із сервером, використовуйте команду:
exit
Підключення по SSH у Windows
Раніше, щоб підключитися до сервера через SSH у Windows, потрібно було використовувати SSH-клієнт за типом PuTTy, Zoc, MobaXterm або Termius. Починаючи з Windows 10, у системі є вбудований набір програм OpenSSH (такий самий як у Linux з MacOS).
У Windows 11 OpenSSH активовано за замовчуванням, у Windows 10 може знадобитися активувати його вручну. Це можна зробити в меню «Пуск», розділ «Параметри – Програми», підрозділ «Керування додатковими компонентами».
За замовчуванням OpenSSH у Windows не активовано. Щоб активувати, відкрийте в меню «Пуск», розділ «Параметри – Програми», підрозділ «Керування додатковими компонентами».
Щоб відкрити консоль і підключитися до сервера SSH, відкрийте програму «Виконати» (натисніть комбінацію клавіш Win+R), введіть у рядку команду cmd і натисніть Enter.
Відкриється консоль, де можна буде підключитися до сервера SSH таким же чином, як і в Linux:
ssh ім'я_користувача@адреса_сервера -p порт
Введіть yes, якщо консоль запитує «Are you sure you want to continue connecting (yes/no)?». Це додасть сервер до списку тих, яким можна довіряти.
Потім введіть пароль від облікового запису. Пам’ятайте, що з міркувань безпеки символи вводяться, але не відображаються.
Після цього вас має підключити до сервера, що буде помітно по ідентифікатору користувача (перед рядком для виконання команд).
Щоб відключитися від сервера, використовуйте таку команду (або закрийте консоль):
exit
Підключення по SSH без пароля
Для цього використовують аутентифікацію за допомогою SSH-ключів: приватного та публічного. Приватний ключ зашифровує повідомлення, зберігається на вашому комп’ютері. Публічний ключ розшифровує повідомлення, зберігається на сервері.
Коли ви намагаєтеся підключитися через SSH за допомогою ключів, сервер відправляє на ваш комп’ютер випадкове повідомлення, комп’ютер зашифровує його закритим ключем і відправляє назад. Якщо у сервера вдається розшифрувати повідомлення відкритим ключем, авторизація вважається успішною.
Щоб усе це налаштувати, потрібно: 1) згенерувати SSH-ключі у консолі; 2) завантажити публічний ключ на віддалений сервер; 3) вимкнути авторизацію за паролем у налаштуваннях служби SSH.
Крок 1. Згенеруйте SSH-ключ
Це робиться за допомогою команди ssh-keygen:
ssh-keygen
Спочатку утиліта запропонує ввести ім’я файлу, в який потрібно зберегти ключ (фраза «Enter file in which to save the key»). Щоб усе працювало, краще залишити стандартне ім’я. Для цього просто натисніть клавішу Enter.
Потім утиліта попросить придумати passphrase (кодову фразу). Це пароль, який потрібно буде вводити щоразу під час входу та виконання деяких дій. Якщо не хочете використовувати passphrase, просто натисніть клавішу Enter.
Останній крок — утиліта попросить повторити passphrase. Якщо на попередньому кроці нічого не вводили, знову натисніть клавішу Enter. Після цього утиліта завершить процес і покаже випадкову картинку із символів. Це означає, що все готово.
Ключі зберігаються у папці /home/username/.ssh/. За замовчуванням секретний ключ називається id_rsa , а публічний – id_rsa.pub.
Крок 2. Завантажте публічний ключ на сервер
Це можна зробити за допомогою команди ssh-copy-id:
ssh-copy-id -p порт ім'я_користувача@адреса_сервера
Потрібно ввести пароль від сервера, після чого утиліта сама візьме вміст файлу id_rsa.pub і збереже його стандартним шляхом: ~/.ssh/authorized_keys. Після цього можна буде підключатися SSH без пароля.
Якщо раптом не вдається завантажити ключ за допомогою команди, спробуйте зробити це в панелі керування хостингом. Ось інструкція, як зробити це в cPanel:
Як користуватись диспетчером файлів cPanel
Крок 3. Вимкніть авторизацію за паролем
Не спрацює на віртуальному хостингу (лише на VPS або виділеному сервері).
Це додатково посилить безпеку системи, але у разі втрати приватного ключа ви не зможете потрапити на сервер. Прийде заходити на сервер через панель керування хостингом, або звертатися в підтримку, щоб скинули налаштування SSH.
Відкрийте конфігураційний файл служби SSH:
nano /etc/ssh/sshd_config
Знайдіть директиву PasswordAuthentication і встановіть значення «no». Потім збережіть зміни – спочатку натисніть Ctrl+X, потім Y.
Перезапустіть службу SSH:
sudo service ssh restart
Що далі
Якщо раптом є зауваження щодо статті, щось не виходить чи є додаткові питання — залиште коментар трохи нижче, намагатимемося всім допомогти.