1. Що таке SSH?
Уявіть собі, що ви знаходитеся на одному кінці планети, а сервер, який потрібно налаштувати, — на іншому. Робота шкільного IT-спеціаліста з біганиною по кабінетах — це зовсім не те, що ми хочемо. На щастя, існує SSH (Secure SHell) — інструмент для віддаленого управління серверами.
SSH — це мережевий протокол, який дозволяє безпечно підключатися до віддалених комп'ютерів. Підключення відбувається із використанням шифрування, а це означає, що передані дані захищені від сторонніх очей. SSH замінює застарілі методи на кшталт Telnet, які передавали дані у відкритому вигляді (як листівка Укрпошти).
Переваги SSH
- Безпека. SSH використовує шифрування, захищаючи дані від перехоплення.
- Гнучкість. Віддалене управління сервером, передача файлів, створення тунелів — усе це доступно через SSH.
- Кросплатформеність. Працює і на Linux, і на Windows (зокрема в WSL), і на MacOS.
Тепер, коли ви розумієте, навіщо потрібен SSH, давайте перейдемо до практики.
2. Встановлення SSH-клієнта
Почнемо з клієнта, який дозволить підключатися до сервера. Якщо ви використовуєте сучасний Linux-дистрибутив, клієнт SSH, скоріш за все, вже встановлений. Перевіримо це:
ssh -V
Ви маєте побачити інформацію про версію SSH-клієнта. Якщо команда не знайдена, встановіть його (на Ubuntu та інших дистрибутивах на основі Debian):
sudo apt update
sudo apt install openssh-client
На MacOS SSH-клієнт передвстановлений, а якщо ви працюєте в WSL, встановлення аналогічне Linux.
3. Підключення до віддаленого сервера через SSH
Підключення до сервера виконується командою:
ssh username@hostname
username— це ім'я користувача на віддаленому сервері.hostname— це IP-адреса або доменне ім'я сервера.
Приклад підключення:
ssh student@192.168.1.10
Якщо все налаштовано правильно, система запитає пароль. Після введення пароля ви опинитесь у віддаленій консолі сервера. Вітаю, ви на півдорозі до професії "оператор суперлиходія у фільмі про хакерів".
4. Встановлення та налаштування SSH-сервера
Встановлення SSH-сервера
Якщо ви працюєте на сервері або локальній машині, до якої хочете підключатися, потрібно встановити SSH-сервер. На Ubuntu це робиться так:
sudo apt update
sudo apt install openssh-server
Перевіряємо статус служби SSH:
sudo systemctl status ssh
Ви повинні побачити повідомлення на кшталт active (running). Якщо сервер не запущений, використовуйте:
sudo systemctl start ssh
sudo systemctl enable ssh
Тепер SSH-сервер готовий приймати підключення.
Налаштування SSH-сервера
Основний файл конфігурації SSH-сервера — /etc/ssh/sshd_config. Щоб його відредагувати, скористайтеся будь-яким текстовим редактором, наприклад nano:
sudo nano /etc/ssh/sshd_config
Зверніть увагу на такі параметри:
Port 22— порт, на якому працює SSH.PermitRootLogin no— заборона підключення для root (рекомендується залишитиnoз міркувань безпеки).PasswordAuthentication yes— дозвіл підключення за паролем.
Після зміни параметрів перезапустіть SSH-сервер:
sudo systemctl restart ssh
5. Використання ключової автентифікації
Підключення за допомогою пароля — це зручно, але небезпечно. Найкращий варіант — використання SSH-ключів.
Генерація SSH-ключів
На машині клієнта виконайте команду:
ssh-keygen
Скрипт запитає шлях для збереження ключа (за замовчуванням ~/.ssh/id_rsa). Можна натиснути Enter, щоб прийняти його. Потім вас запитають про фразу-пароль. Краще залишити пустим для спрощення (але це не зовсім безпечно).
Після виконання команди файли ключів будуть створені:
id_rsa— приватний ключ (не робіть його публічним, як початковий код вашого проєкту до релізу, особливо якщо він обріс боргами).id_rsa.pub— публічний ключ (цей можна використовувати для підключення).
Передача ключа на сервер
Використовуйте команду ssh-copy-id, щоб передати публічний ключ на сервер:
ssh-copy-id username@hostname
Це додасть ваш публічний ключ у файл ~/.ssh/authorized_keys на сервері. Тепер ви можете підключатися без введення пароля.
Спробуйте:
ssh username@hostname
Якщо все пройшло успішно, вас не запитають пароль. Ваше життя офіційно стало трохи простішим.
SSH і WSL
Якщо ви працюєте в Windows через WSL, там також можна використовувати SSH. Відкрийте термінал WSL і встановіть SSH-клієнт:
sudo apt update
sudo apt install openssh-client
Подальші дії такі ж, як для Linux.
6. Практична частина: налаштування SSH на localhost
Для практики ви можете налаштувати SSH-з'єднання між двома машинами в одній мережі або навіть на своєму власному комп'ютері (використовуючи localhost як адресу).
- Встановіть SSH-сервер і клієнт на одній машині.
- Підключіться за локальною адресою:
ssh your_user@localhost
- Налаштуйте підключення за ключем, як було показано вище.
У результаті у вас повинно вийти підключення без введення пароля.
7. Робота з конфігураціями та аліасами SSH
Якщо ти часто підключаєшся до різних серверів, можеш спростити собі життя, додавши конфігурацію SSH до файлу ~/.ssh/config:
Host myserver
HostName 192.168.1.10
User student
IdentityFile ~/.ssh/id_rsa
Тепер ти можеш підключатися просто командою:
ssh myserver
Поширені помилки та їх виправлення
Помилка "Connection refused". Це означає, що SSH-сервер не запущений на віддаленій машині. Переконайся, що він встановлений і запущений.
Помилка "Permission denied". Або ти ввів неправильний пароль, або ключі налаштовані некоректно. Перевір вміст файлу
~/.ssh/authorized_keysна сервері.Помилка "No route to host". Перевір, чи доступний сервер у мережі (використовуй
ping).
Тепер ти озброєний знаннями про те, як налаштовувати SSH, користуватися ключами та уникати типових проблем. Це потужний інструмент, який використовується всюди — чи то налаштування серверів на роботі, чи керування домашнім Raspberry Pi.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ