Налаштовуємо 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 працює на нестандартному порту: