15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
09.10.2024

Як увійти на свій сервер або обліковий запис: SSH, панелі керування та методи безпечного доступу

Автентифікація сервера — це процес перевірки вашої особи для отримання авторизованого доступу до віддаленої системи, панелі керування хостингом або онлайн-сервісу. Три основні методи — це SSH на основі пароля, автентифікація за допомогою SSH-ключів та вхід через веб-панель керування — кожен з яких має власний профіль безпеки, варіанти використання та типові помилки, які повинен розуміти кожен адміністратор.

Незалежно від того, чи керуєте ви одним екземпляром VPS Хостингу, чи цілим парком виділених серверів, оволодіння цими методами входу безпосередньо визначає рівень вашої операційної безпеки. Цей посібник детально охоплює кожен метод, включаючи технічні механізми роботи, реальні підводні камені, про які рідко згадується в документації, та контрольний список заходів із захисту, який можна застосувати негайно.

SSH-вхід: автентифікація за паролем проти автентифікації за ключем

SSH (Secure Shell Protocol, RFC 4253) встановлює зашифрований тунель між вашим клієнтом і віддаленим сервером через TCP-порт 22 за замовчуванням. Перш ніж обирати метод автентифікації, зрозумійте, від чого саме захищає кожен із них.

Передумови для будь-якого SSH-сеансу

  • Віддалений сервер із запущеним `sshd` та доступним портом 22 (або нестандартним портом)
  • SSH-клієнт: вбудований `ssh` на Linux/macOS, OpenSSH для Windows (вбудований у Windows 10/11) або PuTTY для застарілих середовищ Windows
  • Дійсні облікові дані: або пара ім’я користувача/пароль, або налаштована пара ключів

Вхід за допомогою імені користувача та пароля

Відкрийте термінал і виконайте команду:

“`bash

ssh username@server_ip_address

“`

Замініть `username` на ім’я вашого системного облікового запису, а `server_ip_address` — на IPv4, IPv6 або повне доменне ім’я (FQDN) сервера.

“`bash

ssh deploy@203.0.113.45

“`

Якщо сервер використовує SSH на нестандартному порті (поширена практика захисту):

“`bash

ssh -p 2222 deploy@203.0.113.45

“`

Що відбувається під капотом: Клієнт і сервер узгоджують набір шифрів (наприклад, `chacha20-poly1305` або `aes256-gcm`), обмінюються ефемерними ключами Діффі-Геллмана і лише після цього передають ваш пароль — у зашифрованому вигляді. Сам пароль ніколи не передається у відкритому вигляді.

Критична помилка: При першому підключенні до нового сервера SSH відображає відбиток ключа хоста та просить підтвердити його. Ніколи не вводьте `yes` наосліп. Перевіряйте відбиток через панель керування вашого хостинг-провайдера або надійний позасмуговий канал. Прийняття підробленого відбитка є точкою входу для атаки типу «людина посередині».

Вхід за допомогою SSH-ключів

SSH-автентифікація за ключем замінює пароль криптографічним викликом. Сервер зберігає ваш публічний ключ; ви зберігаєте приватний ключ. Автентифікація успішна лише тоді, коли ваш клієнт може довести володіння приватним ключем, не передаючи його.

Крок 1 — Згенеруйте пару ключів:

“`bash

ssh-keygen -t ed25519 -C "your_email@example.com"

“`

Для нових розгортань надавайте перевагу Ed25519 над RSA-4096. Ключі Ed25519 коротші, швидше перевіряються та забезпечують рівноцінну або вищу безпеку. Використовуйте RSA-4096 лише тоді, коли віддалена система не підтримує Ed25519 (рідкість у сучасних дистрибутивах).

“`bash

RSA fallback for legacy systems

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

“`

Збережіть ключ за стандартним шляхом (`~/.ssh/id_ed25519`) та встановіть надійну парольну фразу. Парольна фраза шифрує ваш приватний ключ на диску — якщо вашу робочу станцію буде скомпрометовано, зловмисник все одно не зможе використати зашифрований ключ без парольної фрази.

Крок 2 — Розгорніть публічний ключ на сервері:

“`bash

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip_address

“`

Це додає ваш публічний ключ до `~/.ssh/authorized_keys` на сервері з правильними дозволами (`600`). Якщо `ssh-copy-id` недоступний:

“`bash

cat ~/.ssh/id_ed25519.pub | ssh username@server_ip_address

"mkdir -p ~/.ssh && chmod 700 ~/.ssh &&

cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

“`

Крок 3 — Підключіться:

“`bash

ssh username@server_ip_address

“`

Запит пароля не з’явиться. Якщо ви встановили парольну фразу, ваш локальний SSH-агент може кешувати її:

“`bash

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/id_ed25519

“`

Граничний випадок — кілька ключів: Використовуйте `~/.ssh/config` для призначення конкретних ключів конкретним хостам, уникаючи помилок автентифікації, коли сервер відхиляє неправильний ключ після надто великої кількості спроб:

“`

Host prod-server

HostName 203.0.113.45

User deploy

IdentityFile ~/.ssh/id_ed25519_prod

Port 2222

“`

SSH-автентифікація за паролем проти автентифікації за ключем: пряме порівняння

АтрибутАвтентифікація за паролемSSH-автентифікація за ключем
Стійкість до переборуНизька — вразлива до автоматизованих атакДуже висока — перебір є обчислювально неможливим
Ризик розкриття облікових данихВисокий, якщо пароль повторно використовується або є слабкимМінімальний — приватний ключ ніколи не залишає клієнта
Сумісність з автоматизацієюПогана — вимагає інтерактивного введенняВідмінна — підтримує неінтерактивні скрипти та CI/CD
Складність налаштуванняВідсутняНизька — одноразове генерування та розгортання ключа
Відновлення у разі втратиСкидання пароля через провайдераНеобхідний попередньо налаштований резервний ключ або доступ через консоль
Рекомендовано для продакшенуНіТак
Сумісність з 2FAТакТак (з `AuthenticationMethods publickey,keyboard-interactive`)

Для будь-якого продакшен-середовища на Виділеному Сервері вимкніть автентифікацію за паролем повністю після розгортання ключів:

“`bash

/etc/ssh/sshd_config

PasswordAuthentication no

PubkeyAuthentication yes

PermitRootLogin prohibit-password

“`

Перезавантажте демон: `systemctl reload sshd`

Вхід до веб-панелей керування

Веб-панелі керування — cPanel, Plesk, DirectAdmin, Webmin та власні панелі провайдерів — надають доступ до керування сервером через браузер. Вони є основним інтерфейсом для користувачів, які керують хостингом без прямого доступу до оболонки.

Стандартна процедура входу

  1. Відкрийте браузер і перейдіть до URL-адреси панелі. Типові значення за замовчуванням:
  • cPanel: `https://yourdomain.com:2083` (SSL) або `http://yourdomain.com:2082`
  • Plesk: `https://yourdomain.com:8443`
  • Webmin: `https://yourdomain.com:10000`
  • DirectAdmin: `https://yourdomain.com:2222`
  1. Введіть ім’я користувача та пароль, надані вашим хостинг-провайдером або встановлені під час підготовки сервера.
  2. Якщо увімкнено двофакторну автентифікацію (2FA), введіть TOTP-код із вашого застосунку-автентифікатора (Google Authenticator, Aegis або Authy).

Двофакторна автентифікація на панелях керування

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

Налаштування в cPanel:

  • Перейдіть до Безпека > Двофакторна автентифікація
  • Відскануйте QR-код за допомогою вашого застосунку-автентифікатора
  • Підтвердьте тестовим кодом та збережіть резервні коди в надійному місці (менеджер паролів, а не стікер)

Критична операційна примітка: Зберігайте резервні коди офлайн. Якщо ви втратите доступ до пристрою-автентифікатора і не матимете резервних кодів, відновлення вимагатиме звернення до вашого хостинг-провайдера та проходження перевірки особи — процес, який може тривати години під час інциденту.

Якщо ви використовуєте VPS з cPanel, переконайтеся, що 2FA застосовується на рівні WHM для всіх облікових записів реселерів і користувачів, а не лише для кореневого адміністратора.

Безпека браузера при доступі до панелі керування

  • Завжди перевіряйте замок HTTPS і те, що Common Name сертифіката відповідає вашому домену. Дійсний SSL-сертифікат на вашій панелі керування запобігає перехопленню облікових даних у ненадійних мережах.
  • Уникайте входу до панелей керування через публічний Wi-Fi без VPN.
  • Використовуйте окремий профіль браузера або режим приватного перегляду для адміністративних входів, щоб запобігти витоку токенів сеансу через розширення.

Вхід до онлайн-акаунтів та поштових сервісів

Для веб-сервісів — поштових платформ, хмарних панелей, порталів білінгу — процес автентифікації стандартизований, але наслідки для безпеки суттєво різняться.

Стандартний процес веб-входу

  1. Перейдіть на сторінку входу сервісу (додайте її до закладок — ніколи не переходьте за посиланнями у листах на сторінки входу)
  2. Введіть ім’я користувача, адресу електронної пошти або ідентифікатор облікового запису
  3. Введіть пароль
  4. Пройдіть будь-який виклик 2FA (TOTP, апаратний ключ або SMS — у порядку спадання безпеки)

Для організацій, що використовують сервіси Поштового Хостингу, переконайтеся, що доступ до вебпошти (Roundcube, Horde, SquirrelMail) здійснюється виключно через HTTPS і що облікові записи застосовують надійні політики паролів на рівні сервера.

Гігієна паролів: що насправді означає «надійний»

Випадковий рядок із 20 символів, згенерований менеджером паролів, категорично надійніший за будь-який пароль, який людина може запам’ятати. Рекомендації NIST SP 800-63B (оновлені у 2024 році) прямо рекомендують:

  • Довжина важливіша за складність: Випадкова парольна фраза з 20 символів долає атаки перебором, які зламують складні, але короткі паролі за хвилини
  • Без обов’язкової періодичної зміни, якщо не підозрюється компрометація — примусова зміна призводить до передбачуваних шаблонів (`Password1!` → `Password2!`)
  • Перевіряйте бази даних витоків: Такі сервіси, як HaveIBeenPwned, ведуть списки мільярдів скомпрометованих паролів; використовуйте їх API або менеджер паролів із моніторингом витоків

Поширені помилки входу та способи їх діагностики

Відмова у з’єднанні SSH

`ssh: connect to host 203.0.113.45 port 22: Connection refused`

Шлях діагностики:

  1. Перевірте, чи запущено `sshd`: `systemctl status sshd`
  2. Перевірте правила брандмауера: `ufw status` або `iptables -L -n | grep 22`
  3. Підтвердьте правильний порт — сервер може використовувати нестандартний SSH-порт
  4. Перевірте, чи не заблокував `fail2ban` або `sshguard` вашу IP-адресу після повторних невдалих спроб: `fail2ban-client status sshd`

Відмовлено в доступі (публічний ключ)

`Permission denied (publickey).`

Поширені причини:

  • Вказано неправильний ключ — використовуйте `ssh -v` для детального виводу, щоб побачити, який ключ пропонується
  • Неправильні дозволи на `~/.ssh/authorized_keys` (має бути `600`) або каталозі `~/.ssh/` (має бути `700`)
  • Файл `authorized_keys` містить ключ на кількох рядках (пошкодження переносом рядка при копіюванні та вставці)
  • `sshd_config` має `AuthorizedKeysFile`, що вказує на нестандартний шлях

Блокування облікового запису

Повторні невдалі спроби входу запускають механізми блокування на кількох рівнях: на рівні застосунку (cPanel, Plesk), на рівні ОС (`pam_faillock` PAM) та на рівні брандмауера (`fail2ban`). Зверніться до служби підтримки вашого хостинг-провайдера для розблокування IP-адреси, або якщо у вас є доступ до консолі/KVM, розблокуйте свою IP-адресу безпосередньо:

“`bash

fail2ban-client set sshd unbanip YOUR_IP_ADDRESS

“`

Прострочений або відкликаний SSH-ключ

SSH-ключі за замовчуванням не мають вбудованого терміну дії, але їх можна фактично відкликати, видаливши з `authorized_keys`. Якщо ваш ключ раптово перестав працювати:

  • Перевірте, чи публічний ключ досі присутній у `~/.ssh/authorized_keys` на сервері
  • Перевірте, чи не було оновлено `sshd_config` сервера для обмеження `AllowUsers` або `AllowGroups`
  • Підтвердьте, що ключ не було ротовано автоматизованою системою керування секретами (Vault, AWS Secrets Manager)

Контрольний список заходів із захисту входу на сервер

Застосуйте ці заходи до будь-якого сервера, яким ви керуєте:

  • Вимкніть SSH-вхід для root (`PermitRootLogin no` або `prohibit-password`)
  • Вимкніть автентифікацію за паролем після розгортання SSH-ключів
  • Змініть стандартний SSH-порт, щоб зменшити шум від автоматизованих сканерів (захист через неочевидність, а не заміна реального захисту)
  • Розгорніть `fail2ban` з агресивними порогами для SSH та кінцевих точок входу до панелі керування
  • Застосуйте 2FA на всіх веб-панелях керування
  • Регулярно перевіряйте `authorized_keys` — видаляйте ключі колишніх співробітників або виведених з експлуатації систем
  • Використовуйте SSH-сертифікати (через внутрішній CA) замість звичайних ключів для команд із більш ніж 5 адміністраторів — сертифікати підтримують термін дії та відкликання за замовчуванням
  • Відстежуйте `/var/log/auth.log` (Debian/Ubuntu) або `/var/log/secure` (RHEL/CentOS) на предмет аномальних шаблонів входу
  • Обмежте SSH-доступ за IP-адресою за допомогою `AllowUsers user@trusted_ip` у `sshd_config` або правил брандмауера

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

Матриця рішень: який метод входу слід використовувати?

СценарійРекомендований методПримітки
Один розробник, особистий VPSSSH-ключ (Ed25519) + парольна фразаВимкніть автентифікацію за паролем після налаштування
Команда адміністраторів, продакшен-серверSSH-сертифікати через внутрішній CAЗабезпечує термін дії та централізоване відкликання
Нетехнічний користувач, спільний хостингcPanel/Plesk з 2FAПереконайтеся, що SSL дійсний на URL-адресі панелі
Автоматизований конвеєр розгортанняSSH-ключ (без парольної фрази) + обмежена оболонкаВикористовуйте виділений ключ розгортання з мінімальними дозволами
Аварійний доступ через консольKVM/IPMI-консоль провайдераОбходить SSH повністю при блокуванні
Облікові записи електронної пошти та веб-сервісівМенеджер паролів + TOTP 2FAАпаратний ключ (YubiKey) для найцінніших облікових записів

Практичні висновки

  • Ніколи не використовуйте автентифікацію за паролем на загальнодоступному SSH-сервері. Обсяг автоматизованих атак перебором на порт 22 робить це ризиком незалежно від надійності пароля.
  • Ed25519 є поточною найкращою практикою для генерування нових SSH-ключів. RSA-4096 прийнятний лише для сумісності зі застарілими системами.
  • Файл `~/.ssh/config` використовується недостатньо. Визначення псевдонімів хостів, портів і шляхів до ключів у ньому усуває найпоширеніші помилки SSH-з’єднання.
  • 2FA на панелях керування є обов’язковою для будь-якого сервера, що зберігає продакшен-дані або клієнтські облікові записи.
  • Перевіряйте відбитки ключів хоста при першому підключенні. Ваш хостинг-провайдер повинен публікувати їх у своїй панелі керування.
  • Резервні коди для 2FA мають зберігатися офлайн — втрата доступу до автентифікатора без резервних кодів означає повний процес перевірки особи у провайдера.
  • Регулярно перевіряйте доступи. Видаляйте застарілі ключі, вимикайте неактивні облікові записи та переглядайте журнали входу щонайменше щомісяця.

Часті запитання

Який найбезпечніший спосіб входу на віддалений сервер?

SSH-автентифікація за допомогою пари ключів Ed25519 у поєднанні з надійною парольною фразою для приватного ключа та `PasswordAuthentication no` у `sshd_config`. Для команд SSH-сертифікати, видані внутрішнім CA, додають можливості терміну дії та відкликання, яких бракує статичним парам ключів.

Чому SSH видає «Permission denied (publickey)», навіть якщо я скопіював свій ключ?

Найпоширеніші причини — неправильні дозволи на файли (`~/.ssh/` має бути `700`, `authorized_keys` має бути `600`), неправильний ключ, що пропонується клієнтом, або пошкодження переносом рядка у файлі `authorized_keys` при копіюванні та вставці. Запустіть `ssh -vvv user@host`, щоб побачити, який саме ключ перевіряється і чому він відхиляється.

Чи можна використовувати SSH-ключі та 2FA одночасно?

Так. Встановіть `AuthenticationMethods publickey,keyboard-interactive` у `sshd_config` та налаштуйте TOTP-модуль на основі PAM (наприклад, `libpam-google-authenticator`). Користувач повинен надати дійсний ключ, а потім пройти TOTP-виклик — обидва фактори є обов’язковими.

Що робити, якщо я заблокований на сервері після вимкнення автентифікації за паролем?

Отримайте доступ до сервера через позасмугову консоль вашого хостинг-провайдера (KVM, IPMI або VNC). Звідти ви можете повторно додати свій публічний ключ до `authorized_keys`, виправити `sshd_config` або тимчасово повторно увімкнути автентифікацію за паролем для відновлення доступу.

Як запобігти атакам перебором на мій SSH-порт?

Встановіть та налаштуйте `fail2ban` для блокування IP-адрес після визначеної кількості невдалих спроб автентифікації. Крім того, обмежте SSH-доступ відомими IP-адресами за допомогою правил брандмауера (`ufw allow from trusted_ip to any port 22`) та розгляньте можливість переміщення SSH на нестандартний порт, щоб усунути більшість трафіку від автоматизованих сканерів.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати