Як встановити та налаштувати SSH ⋆ ALexHost SRL

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Use code at checkout:

Skills
17.12.2024

Як встановити та налаштувати SSH

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

У цій статті ми розповімо вам, як встановити і налаштувати SSH в Linux, охопивши основи, параметри конфігурації і рекомендації з безпеки.


Що таке SSH?

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

За замовчуванням SSH працює через порт 22, який можна використовувати для:

  • Віддаленого входу до серверів
  • Безпечної передачі файлів (за допомогою SCP або SFTP)
  • Віддаленого виконання команд
  • Переадресація та тунелювання портів

Крок 1: Встановлення SSH

Більшість дистрибутивів Linux постачається з попередньо встановленим SSH, але якщо його не встановлено, ви можете легко встановити його за допомогою менеджера пакетів вашого дистрибутива.

Для Ubuntu/Debian:

sudo apt update sudo apt install openssh-server

Для CentOS/RHEL:

sudo yum install openssh-server

Для Fedora:

sudo dnf install openssh-server

Для Arch Linux:

sudo pacman -S openssh

Після встановлення у вас буде встановлено сервер і клієнт OpenSSH, що дозволить вам запускати SSH-сервер і підключатися до інших SSH-серверів.


Крок 2: Запуск та ввімкнення служби SSH

Після встановлення вам потрібно запустити службу SSH (також відому як sshd – демон SSH) і увімкнути її запуск під час запуску системи.

Запуск служби SSH:

sudo systemctl start ssh

Увімкнення запуску SSH під час завантаження:

sudo systemctl enable ssh

Ви можете перевірити правильність роботи SSH, набравши команду:

sudo systemctl status ssh

Якщо служба працює, ви побачите активний статус, який означає, що SSH готовий приймати з’єднання.


Крок 3: Базове налаштування SSH

Поведінка SSH контролюється конфігураційним файлом, розташованим за адресою:

/etc/ssh/sshd_config

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

Для редагування файлу використовуйте текстовий редактор, наприклад, nano або vim:

sudo nano /etc/ssh/sshd_config

Нижче наведено деякі типові зміни конфігурації:

1. Зміна порту SSH за замовчуванням

З міркувань безпеки варто змінити порт SSH за замовчуванням з 22 на інший. Це допоможе знизити ризик автоматизованих атак, спрямованих на порт SSH за замовчуванням.

Знайдіть наступний рядок у файлі конфігурації:

#Порт 22

Закоментуйте його та змініть номер порту:

Порт 2222

Після збереження файлу перезапустіть службу SSH, щоб застосувати зміни:

sudo systemctl restart ssh

Не забудьте оновити правила брандмауера, щоб дозволити з’єднання на новому порту.

2. Вимкнення входу з правами суперкористувача

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

PermitRootLogin yes

Змініть його на

PermitRootLogin no

Це заборонить прямий доступ до прав суперкористувача через SSH. Користувачі все одно зможуть увійти під звичайним обліковим записом, а потім переключитися на користувача root за допомогою sudo або su.

3. Увімкнення автентифікації на основі ключів

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

Щоб увімкнути автентифікацію на основі ключів, знайдіть наступні рядки і переконайтеся, що для них встановлено значення “так”:

PubkeyAuthentication так PasswordAuthentication ні

Це вимкне вхід на основі пароля і дозволить доступ до SSH лише за допомогою автентифікації на основі ключа.


Крок 4: Генерація ключів SSH (автентифікація на основі ключів)

Пари ключів SSH забезпечують безпечний спосіб входу без пароля. Ось як згенерувати і налаштувати ключі SSH:

Крок 1: Створення пари ключів SSH

На вашому локальному комп’ютері запустіть наступну команду, щоб згенерувати пару ключів:

ssh-keygen -t rsa -b 4096

Вам буде запропоновано ввести ім’я файлу для збереження ключа (або натиснути Enter, щоб використати місце за замовчуванням) і необов’язкову парольну фразу для додаткової безпеки.

Буде створено два файли:

  • ~/.ssh/id_rsa: ваш приватний ключ (зберігайте його в безпеці і не надавайте нікому).
  • ~/.ssh/id_rsa.pub: Ваш публічний ключ (ним можна ділитися і додавати на віддалені сервери).

Крок 2: Копіювання відкритого ключа на сервер

Щоб використовувати ключ для входу по SSH, скопіюйте відкритий ключ на віддалений сервер, до якого ви хочете отримати доступ. Ви можете зробити це за допомогою команди ssh-copy-id:

ssh-copy-id ім’я користувача@віддалений_хост

Замініть username на ім’я користувача вашого віддаленого сервера, а remote_host на IP-адресу або ім’я хоста сервера.

Це скопіює ваш відкритий ключ на сервер і додасть його до файлу ~/.ssh/authorized_keys, що дозволить вам увійти без пароля.

Крок 3: Увійдіть за допомогою ключа SSH

Тепер ви можете увійти на віддалений сервер за допомогою вашого приватного ключа:

ssh ім’я користувача@віддалений_хост

Якщо ви встановили власний порт, вкажіть його за допомогою опції -p:

ssh -p 2222 username@remote_host

Крок 5: Захист конфігурації SSH

Після налаштування SSH важливо дотримуватися найкращих практик безпеки, щоб переконатися, що ваш сервер захищено від несанкціонованого доступу.

1. Використовуйте надійні паролі (якщо ви використовуєте парольну автентифікацію)

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

2. Використовуйте брандмауер

Переконайтеся, що брандмауер вашого сервера дозволяє трафік тільки на порт SSH, який ви використовуєте. Наприклад, якщо ви змінили SSH на порт 2222, дозвольте трафік на цей порт за допомогою ufw (на Ubuntu/Debian) або firewalld (на CentOS/RHEL).

sudo ufw allow 2222/tcp sudo ufw enable

3. Обмеження доступу по SSH

Обмежте доступ до SSH певними IP-адресами або діапазонами, налаштувавши брандмауер або за допомогою файлів /etc/hosts.allow і /etc/hosts.deny.


Крок 6: Тестування та усунення несправностей SSH

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

Загальні поради щодо усунення несправностей SSH:

  1. Перевірте налаштування брандмауера: Переконайтеся, що брандмауер не блокує порт SSH.
  2. Перевірте стан служби SSH: Переконайтеся, що служба SSH запущена за допомогою systemctl status ssh.
  3. Перевірте конфігурацію: Перевірте файл /etc/ssh/sshd_config на наявність помилок у конфігурації.
  4. Для налагодження використовуйте докладний режим: Якщо виникли проблеми, використовуйте опцію -v при підключенні, щоб побачити докладний вивід:
ssh -v ім’я користувача@віддалений_хост

Висновок

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

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Use code at checkout:

Skills