Розуміння доступу по SSH

У сучасному взаємопов’язаному світі віддалене керування серверами є невід’ємною частиною системного адміністрування. Незалежно від того, чи є ви розробником, системним адміністратором або власником бізнесу, який керує VPS (віртуальним приватним сервером), розуміння доступу до SSH (Secure Shell) має вирішальне значення для забезпечення безпеки та ефективності.

Що таке SSH?

SSH (Secure Shell) – це криптографічний мережевий протокол, який дозволяє користувачам безпечно отримувати доступ до віддаленого комп’ютера та керувати ним через незахищену мережу.
Замість того, щоб надсилати звичайну текстову інформацію, як у старих протоколах (наприклад, Telnet, FTP), SSH шифрує сеанс, захищаючи конфіденційну інформацію, таку як імена користувачів, паролі та команди.

Зазвичай SSH працює на порту 22, хоча адміністратори часто змінюють його з міркувань безпеки.

Як працює SSH

SSH використовує модель клієнт-сервер:

  • SSH-клієнт (ваш комп’ютер) ініціює з’єднання.

  • SSH-сервер (віддалений комп’ютер) приймає з’єднання після перевірки облікових даних.

Автентифікація відбувається одним з двох основних способів:

  • Автентифікація на основі пароля (ви вводите пароль)

  • Автентифікація наоснові клю ча (ви використовуєте пару приватних/публічних криптографічних ключів)

Налаштування доступу по SSH

1. Встановлення SSH-клієнта
Більшість систем Linux і macOS постачаються з попередньо встановленим SSH-клієнтом.
Для Windows ви можете використовувати:

  • Windows Terminal (Windows 10)

  • PuTTY (популярний автономний клієнт)

  • OpenSSH для Windows (додаткова функція)

2. Підключення до сервера
Використовуйте базову команду SSH:

ssh username@server_ip_address

Приклад:

ssh admin@192.168.1.10

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

4. Автентифікація

  • Якщо ви використовуєте пароль, вам буде запропоновано ввести його.

  • За допомогою приватного ключа SSH використовує ключ автоматично або ви вказуєте його:

    ssh -i /path/to/privatekey.pem ім'я користувача@ім'я_сервера_ip_адреса

Кращі практики безпеки SSH

  1. Вимкніть вхід за паролем
    Перейдіть на автентифікацію тільки на основі ключів. Набагато складніше підібрати криптографічний ключ, ніж пароль.

  2. Змінити порт SSH за замовчуванням
    Зміна порту 22 на інший випадковий порт зменшує кількість спроб автоматичного сканування.

  3. Використовуйте надійні, унікальні SSH-ключі
    Генеруйте ключі з принаймні 2048-бітовим шифруванням(ssh-keygen -t rsa -b 4096).

  4. Обмежте доступ до SSH за IP-адресою
    Налаштуйте правила брандмауера, щоб дозволити доступ до SSH лише з довірених IP-адрес.

  5. Увімкнути двофакторну автентифікацію (2FA)
    Деякі SSH-сервери підтримують 2FA для ще більш надійної автентифікації.

  6. Оновлюйте програмне забезпечення
    Завжди встановлюйте патчі для програмного забезпечення вашого SSH-сервера, щоб захиститися від вразливостей.

  7. Використовуйте Fail2Ban або подібні інструменти
    Встановіть інструменти, які автоматично забороняють IP-адреси, що намагаються здійснити атаку перебором.

Корисні команди SSH для керування

  • Копіювання файлів між локальним і віддаленим серверами:

    scp localfile.txt ім'я користувача@ім'я_сервера:/віддалений/каталог/
  • Відкрийте інтерактивний файловий редактор (наприклад, nano, vim або vi), щоб змінити файли сервера.

  • Керування службами (на серверах Linux):

    sudo systemctl restart apache2
    sudo systemctl status nginx
  • Відстежуйте активність сервера:

    top
    htop
  • Вийти з сеансу SSH:

    exit

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

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