SSH — це зашифрований канал до командного рядка іншого комп'ютера. Через нього можна виконувати команди на віддаленому сервері так само, ніби термінал відкритий перед очима, але весь трафік між двома сторонами шифрується.
Що відбувається при підключенні по SSH
Підключення проходить через одну й ту саму послідовність кроків незалежно від того, який клієнт і сервер використовуються.
- клієнт звертається до сервера на вказаний порт і пропонує почати сесію;
- сторони обмінюються ключами і домовляються про алгоритм шифрування каналу;
- сервер перевіряє автентичність користувача — за паролем або за ключем;
- після успішної перевірки відкривається зашифрована сесія, і команди йдуть захищеним каналом.
Клієнт і сервер: хто є хто
Плутанина в запитах «що таке ssh клієнт» і «що таке sshd» зникає, якщо розвести ролі в таблиці.
| Сторона | Що це | Де живе | Що налаштовується |
|---|---|---|---|
| клієнт | програма для підключення | комп'ютер користувача | адреса сервера, ключ, порт |
| sshd | служба, яка приймає підключення | віддалений сервер | дозволені методи входу, порт, користувачі |
Пароль чи ключ
Перевірка автентичності проходить або за паролем, або за парою ключів — закритим у клієнта і відкритим на сервері. Ключ обирають частіше, бо його не можна підібрати перебором і не треба вводити щоразу під час входу.
Як створити і використовувати пару ключів, описано у статті про SSH-ключі для VPS.
Відбиток сервера і попередження про його зміну
Під час першого підключення клієнт не знає сервер і показує його відбиток — короткий підпис публічного ключа сервера.
The authenticity of host 'example.com (203.0.113.25)' can't be established.
Are you sure you want to continue connecting (yes/no)?
Згода на підключення зберігає відбиток локально. Якщо під час наступного входу сервер раптом надішле інший ключ, клієнт видасть тривожне попередження: це захист від підміни сервера, а не звичайна помилка, і причину зміни варто з'ясувати до того, як продовжувати.
Що ще вміє SSH крім командного рядка
Канал SSH використовують не лише для термінала.
- копіювання файлів між комп'ютерами тим самим зашифрованим каналом;
- проброс портів — доступ до сервісу на віддаленій машині через локальний порт;
- тунель — весь трафік обраного застосунку йде через зашифроване з'єднання.
Порт 22 і навіщо його змінюють
За замовчуванням служба sshd слухає порт 22, і на нього налаштовані всі автоматичні сканери та боти, які перебирають паролі без розбору.
Зміна порту на нестандартний чесно не підвищує захист сама по собі — це зменшення шуму в журналах, а не заміна перевірки за ключем чи обмеження доступу за IP-адресою.
Часті питання
Що таке sshd?
Sshd — це служба на боці сервера, яка приймає вхідні SSH-підключення, перевіряє автентичність користувача і відкриває захищену сесію. Вона працює у фоновому режимі постійно і налаштовується окремо від клієнтської програми, якою користується людина, що підключається до сервера.
Чим SSH відрізняється від SSH-ключа?
SSH — це сам протокол і зашифрований канал зв'язку. SSH-ключ — один зі способів підтвердити особу всередині цього каналу, альтернатива паролю. Протокол працює і без ключів, але ключ робить вхід швидшим і помітно надійнішим проти підбору пароля.
Чи потрібен SSH звичайному власнику сайту?
Напряму — не завжди: багато завдань вирішуються через панель керування без командного рядка. Але SSH стає в пригоді для разових завдань на кшталт перегляду логів, запуску скрипта чи ручного відновлення з резервної копії, коли панель не передбачає такої операції.
Чи безпечний SSH за паролем?
Сам канал зв'язку зашифрований в обох випадках однаково. Ризик в іншому: пароль можна підібрати перебором, особливо короткий, а відкритий сервер приваблює ботів, які пробують тисячі комбінацій. Вхід за ключем прибирає цей конкретний ризик майже повністю.
Перше підключення
Як підключитися до сервера по SSH на практиці, з конкретними командами і розбором помилок — у статті перше підключення до VDS по SSH.