Як встановити та налаштувати SSH
SSH (Secure Shell) – це протокол, який використовується для безпечного підключення до віддалених систем, виконання команд і передачі даних. Він надає системним адміністраторам, розробникам і користувачам безпечний метод віддаленого керування серверами та іншими пристроями за допомогою зашифрованих з’єднань. Встановлення та налаштування SSH необхідне для безпечного доступу до серверів з метою системного адміністрування, віддаленої роботи або розробки.
У цій статті ми розповімо вам, як встановити і налаштувати SSH в Linux, охопивши основи, параметри конфігурації і рекомендації з безпеки.
Що таке SSH?
SSH розшифровується як Secure Shell і дозволяє користувачам безпечно підключатися до віддаленої системи через інтерфейс командного рядка. Протокол шифрує дані між клієнтом і сервером, що робить його безпечним методом зв’язку, особливо для доступу до серверів через незахищену мережу, таку як Інтернет.
За замовчуванням SSH працює через порт 22, який можна використовувати для:
- Віддаленого входу до серверів
- Безпечної передачі файлів (за допомогою SCP або SFTP)
- Віддаленого виконання команд
- Переадресація та тунелювання портів
Крок 1: Встановлення SSH
Більшість дистрибутивів Linux постачається з попередньо встановленим SSH, але якщо його не встановлено, ви можете легко встановити його за допомогою менеджера пакетів вашого дистрибутива.
Для Ubuntu/Debian:
Для CentOS/RHEL:
Для Fedora:
Для Arch Linux:
Після встановлення у вас буде встановлено сервер і клієнт OpenSSH, що дозволить вам запускати SSH-сервер і підключатися до інших SSH-серверів.
Крок 2: Запуск та ввімкнення служби SSH
Після встановлення вам потрібно запустити службу SSH (також відому як sshd – демон SSH) і увімкнути її запуск під час запуску системи.
Запуск служби SSH:
Увімкнення запуску SSH під час завантаження:
Ви можете перевірити правильність роботи SSH, набравши команду:
Якщо служба працює, ви побачите активний статус, який означає, що SSH готовий приймати з’єднання.
Крок 3: Базове налаштування SSH
Поведінка SSH контролюється конфігураційним файлом, розташованим за адресою:
Ви можете редагувати цей файл для зміни налаштувань SSH, наприклад, змінити порт за замовчуванням, вимкнути логін root або налаштувати автентифікацію на основі ключів.
Для редагування файлу використовуйте текстовий редактор, наприклад, nano або vim:
Нижче наведено деякі типові зміни конфігурації:
1. Зміна порту SSH за замовчуванням
З міркувань безпеки варто змінити порт SSH за замовчуванням з 22 на інший. Це допоможе знизити ризик автоматизованих атак, спрямованих на порт SSH за замовчуванням.
Знайдіть наступний рядок у файлі конфігурації:
Закоментуйте його та змініть номер порту:
Після збереження файлу перезапустіть службу SSH, щоб застосувати зміни:
Не забудьте оновити правила брандмауера, щоб дозволити з’єднання на новому порту.
2. Вимкнення входу з правами суперкористувача
Дозвіл на вхід з правами суперкористувача через SSH є ризиком для безпеки. Щоб запобігти цьому, знайдіть наступний рядок у файлі конфігурації:
Змініть його на
Це заборонить прямий доступ до прав суперкористувача через SSH. Користувачі все одно зможуть увійти під звичайним обліковим записом, а потім переключитися на користувача root за допомогою sudo або su.
3. Увімкнення автентифікації на основі ключів
Автентифікація на основі ключів SSH є більш безпечним методом, ніж використання паролів. Він передбачає створення пари ключів SSH (відкритий і закритий ключі) і використання закритого ключа для автентифікації.
Щоб увімкнути автентифікацію на основі ключів, знайдіть наступні рядки і переконайтеся, що для них встановлено значення “так”:
Це вимкне вхід на основі пароля і дозволить доступ до SSH лише за допомогою автентифікації на основі ключа.
Крок 4: Генерація ключів SSH (автентифікація на основі ключів)
Пари ключів SSH забезпечують безпечний спосіб входу без пароля. Ось як згенерувати і налаштувати ключі SSH:
Крок 1: Створення пари ключів SSH
На вашому локальному комп’ютері запустіть наступну команду, щоб згенерувати пару ключів:
Вам буде запропоновано ввести ім’я файлу для збереження ключа (або натиснути Enter, щоб використати місце за замовчуванням) і необов’язкову парольну фразу для додаткової безпеки.
Буде створено два файли:
- ~/.ssh/id_rsa: ваш приватний ключ (зберігайте його в безпеці і не надавайте нікому).
- ~/.ssh/id_rsa.pub: Ваш публічний ключ (ним можна ділитися і додавати на віддалені сервери).
Крок 2: Копіювання відкритого ключа на сервер
Щоб використовувати ключ для входу по SSH, скопіюйте відкритий ключ на віддалений сервер, до якого ви хочете отримати доступ. Ви можете зробити це за допомогою команди ssh-copy-id:
Замініть username на ім’я користувача вашого віддаленого сервера, а remote_host на IP-адресу або ім’я хоста сервера.
Це скопіює ваш відкритий ключ на сервер і додасть його до файлу ~/.ssh/authorized_keys, що дозволить вам увійти без пароля.
Крок 3: Увійдіть за допомогою ключа SSH
Тепер ви можете увійти на віддалений сервер за допомогою вашого приватного ключа:
Якщо ви встановили власний порт, вкажіть його за допомогою опції -p:
Крок 5: Захист конфігурації SSH
Після налаштування SSH важливо дотримуватися найкращих практик безпеки, щоб переконатися, що ваш сервер захищено від несанкціонованого доступу.
1. Використовуйте надійні паролі (якщо ви використовуєте парольну автентифікацію)
Якщо ви не використовуєте автентифікацію на основі ключів, переконайтеся, що всі облікові записи користувачів використовують надійні, складні паролі.
2. Використовуйте брандмауер
Переконайтеся, що брандмауер вашого сервера дозволяє трафік тільки на порт SSH, який ви використовуєте. Наприклад, якщо ви змінили SSH на порт 2222, дозвольте трафік на цей порт за допомогою ufw (на Ubuntu/Debian) або firewalld (на CentOS/RHEL).
3. Обмеження доступу по SSH
Обмежте доступ до SSH певними IP-адресами або діапазонами, налаштувавши брандмауер або за допомогою файлів /etc/hosts.allow і /etc/hosts.deny.
Крок 6: Тестування та усунення несправностей SSH
Після налаштування SSH важливо протестувати ваші налаштування. Спробуйте увійти за допомогою SSH, щоб переконатися, що все працює правильно.
Загальні поради щодо усунення несправностей SSH:
- Перевірте налаштування брандмауера: Переконайтеся, що брандмауер не блокує порт SSH.
- Перевірте стан служби SSH: Переконайтеся, що служба SSH запущена за допомогою systemctl status ssh.
- Перевірте конфігурацію: Перевірте файл /etc/ssh/sshd_config на наявність помилок у конфігурації.
- Для налагодження використовуйте докладний режим: Якщо виникли проблеми, використовуйте опцію -v при підключенні, щоб побачити докладний вивід:
Висновок
Встановлення та налаштування SSH є фундаментальною навичкою для будь-якого адміністратора Linux або користувача, якому потрібно безпечно керувати віддаленими системами. Дотримуючись цього посібника, ви зможете встановити SSH, налаштувати його для безпечного доступу та застосувати найкращі практики для захисту вашого сервера від несанкціонованого доступу. Після налаштування SSH стає потужним інструментом для віддаленого керування, автоматизації та безпечного зв’язку між системами.