Налаштовуємо ssh на ubuntu

Встановимо OpenSSH командою:

sudo apt install ssh

Налаштування сервера

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

sudo service ssh stop | start | restart

Основний файл конфігурації SSH-сервера - файл / etc / ssh / sshd_config, доступний для читання або редагування тільки суперкористувачеві. Після кожної зміни цього файлу необхідно перезапустити ssh-сервер для застосування таких змін.

Приклад конфігурації SSH-сервера в Ubuntu 16.04:

Ви маєте можливість копіювати наведений вище текст в ваш власний sshd_config і використовувати в подальшому.

Рекомендовані параметри. Безпека

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

Port, ListenAddress і AddressFamily

По-друге, бажано змінити стандартний порт (22) на якому слухає sshd. Це пов'язано з тим, що численні мережеві сканери постійно намагаються з'єднатися з 22-м портом і як мінімум отримати доступ шляхом перебору логінів / паролів зі своєї бази. Навіть якщо у вас і відключена парольний аутентифікація - ці спроби сильно засмічують журнали і (у великій кількості) можуть негативно вплинути на швидкість роботи ssh сервера. Якщо ж ви з якої-небудь причини не бажаєте змінити стандартний порт ви можете використовувати як різні зовнішні утиліти для боротьби брутфорсер, наприклад fail2ban, так і вбудовані, такі як MaxStartups.
Задати порт можна як абсолютним значенням для всіх інтерфейсів за допомогою директиви Port, так і конкретним значенням для кожного інтерфейсу, за допомогою директиви ListenAddress.

Заборона віддаленого доступу для суперкористувача

За замовчуванням root-доступ заборонений по паролю (по ключу - можна) - опція PermitRootLogin встановлена ​​в without-password4). Але, за умови, що за замовчуванням в Ubuntu користувач, доданий при установці системи має можливість вирішувати всі адміністративні завдання через sudo, створювати можливість root доступу до системи через ssh - виглядає нерозумно (навіть при аутентифікації по ключу). Рекомендується зовсім відключити. цю опцію, або застосовувати її тільки в режимі forced-commands-only.

Протоколи SSH1 і SSH2

Як вже було сказано, sshd може працювати з протоколами SSH1 і SSH2. При цьому використання небезпечного SSH1 вкрай не рекомендується. Змусити sshd працювати тільки з протоколом SSH2

Аутентифікація на основі SSH2 RSA-ключів

Налаштування SSH-клієнта

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

Отримуємо пропозицію ввести пароль для захисту файлу ключа (виявляється корисним при попаданні файлу в чужі руки). Передаємо публічний ключ на сервер командою

Все, можна заходити.

Коли ssh працює на нестандартному порту:

Також можна почитати: