Налаштування SSH на CentOS 7

Настройка SSH в CentOS 7
SSH (secure shell) &8212; протокол для створення шифрованого з'єднання між клієнтом і сервером. Завдяки цій технології може здійснюватися віддалене управління комп'ютером. Взаємодія з утилітою відбувається в терміналі, а в операційну систему CentOS 7 вона додана за замовчуванням. Тому сьогодні ми б хотіли детально розглянути стандартну процедуру настройки, яка буде корисна всім, хто збирається працювати з SSH.

Налаштування SSH на CentOS 7

Процес конфігурації індивідуальний для кожного системного адміністратора, але все ж є кілька пунктів, корисних для всіх користувачів. В рамках даної статті ми поговоримо не тільки про серверної складової, але і про клієнтської, а також вкажемо, на якому з пристроїв виконується певна дія.

Встановлення компонентів та запуск сервера

Ми вже говорили, що SSH за замовчуванням додано до списку системних бібліотек CentOS 7, але іноді з якихось причин необхідні компоненти відсутні на комп'ютері. В такому випадку їх потрібно додати, а потім активувати роботу сервера.

  1. Відкрийте &171;Термінал&187; і пропишіть там команду sudo yum -y install openssh-server openssh-clients .
  2. Установка сервера и клиента SSH в CentOS 7 через терминал
  3. Підтвердьте справжність облікового запису суперкористувача, ввівши пароль. Врахуйте, що вводяться таким чином Символи не відображаються в рядку.
  4. Ввод пароля для установки компонентов SSH в CentOS 7 через терминал
  5. Запустіть перевірку конфігурації командою sudo chkconfig sshd on .
  6. Первая команда для активации сервиса SSH в CentOS 7
  7. Потім запустіть саму службу SSH, вказавши service sshd start .
  8. Вторая команда для активации сервиса SSH в CentOS 7
  9. Залишилося тільки перевірити, що задіяний за замовчуванням порт відкритий. Для цього використовуйте рядок netstat -tulpn | grep :22 .
  10. Проверка работоспособности порта протокола SSH в CentOS 7

Після успішного твору зазначених вище інструкцій можна сміливо переходити до початку конфігурації. Хочемо звернути вашу увагу, що обов'язково слід читати показані на екрані повідомлення під час активації команд. Вони можуть свідчити про виникнення певних помилок. Своєчасне виправлення всіх неполадок допоможе уникнути подальших проблем.

Редагування конфігураційного файлу

Звичайно, конфігураційний файл редагується лише на розсуд системного адміністратора. Однак ми хочемо показати, як його запустити в текстовому редакторі і на які пункти слід зробити акцент в першу чергу.

  1. Радимо використовувати редактор nano , встановити який в систему допоможе команда sudo yum install nano . По завершенні інсталяції запустіть конфігураційний файл через sudo nano /etc/ssh/sshd_config .
  2. Переход к конфигурационному файлу SSH в CentOS 7
  3. Ви будете ознайомлені з усіма доступними параметрами. Деякі з них коментуються, тобто перед параметром стоїть знак . Відповідно, прибираючи цей символ, ви розкоментуєте параметр, і він буде дійсний. Ви можете змінити стандартний порт, змінивши значення рядка &171;Port&187; на будь-яке інше. Крім цього, рекомендується встановити другий протокол, використовуючи &171;Protocol 2&187; . Тоді підвищиться рівень безпеки.
  4. Редактирование конфигурационного файла SSH в CentOS 7
  5. Ці та інші параметри змінюються тільки за бажанням адміністратора. Детальну інформацію про кожного з них ви знайдете в офіційній документації SSH. Після завершення редагування збережіть зміни, натиснувши гарячу клавішу Ctrl + O .
  6. Перезапись конфигурационного файла SSH в CentOS 7
  7. Вийти з редактора допоможе комбінація Ctrl + X .
  8. Выход из редактирования конфигурационного файла SSH в CentOS 7
  9. Перезапустіть службу через sudo service sshd restart , щоб внесені зміни вступили в силу.
  10. Перезапуск сервисов SSH в CentOS 7
  11. Потім можете перевірити статус SSH, щоб переконатися в його працездатності, через service sshd status .
  12. Проверка статуса работоспособности сервера SSH в CentOS 7

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

Створення пари ключів RSA

Криптографічний алгоритм RSA (абревіатура від прізвищ Rivest, Shamir і Adleman) використовується сервісом SSH для створення пари ключів. Така дія дозволить максимально убезпечити клієнтську і серверну частину при проведенні з'єднань. Задіяти доведеться обидві ланцюга, щоб створити пару ключів.

  1. Для початку зайдіть на клієнтський комп'ютер і введіть в консолі ssh-keygen .
  2. Создание пары ключей для клиента в утилите SSH в CentOS 7
  3. Після активації з'явиться новий рядок, де буде запропоновано вказати шлях для збереження ключа. Якщо хочете залишити розташування за замовчуванням, не вводьте нічого, а просто натисніть на клавішу Enter .
  4. Выбрать файл для расположения пары ключей клиента SSH в CentOS 7
  5. Далі створюється парольна фраза. Вона забезпечить захищеність від несанкціонованого входу в систему. Після створення пароля його потрібно повторити.
  6. Ввод парольной фразы для пары ключей утилиты SSH в CentOS 7
  7. На цьому процедура генерації завершена. На екрані ви побачите сам ключ і випадкове зображення, присвоєне йому.
  8. Успешное создание пары ключей для утилиты SSH в CentOS 7

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

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

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

Утиліта ssh-copy-id

Копіювання відкритого ключа через утиліту ssh-copy-id &8212; найпростіший метод. Однак підійде він тільки в тому випадку, коли на комп'ютері присутній цей самий інструмент. Вам же потрібно прописати всього одну команду ssh-copy-id username@remote_host , де username@remote_host &8212; ім'я користувача та хост віддаленого сервера.

Копирование ключей с помощью специальной утилиты SSH в CentOS 7

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

The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?

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

Подтверждение первого входа на удаленный компьютер SSH в CentOS 7

Залишилося тільки ввести пароль від облікового запису сервера, і на цьому процедура копіювання через згадану утиліту буде успішно завершена.

Ввода пароля для удаленного входа на компьютер SSH в CentOS 7

Копіювання відкритого ключа через SSH

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

  1. Команда cat дозволить рахувати і відразу ж додати ключ в файл на серверному комп'ютері. Для цього просто введіть cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" , де username@remote_host &8212; ім'я облікового запису та хоста віддаленого комп'ютера. Врахуйте, що опція >> додасть ключ до кінця файлу, а не перезапише його повністю. Тому введені раніше Ключі теж будуть збережені.
  2. Автоматическое копирование ключей через подключение SSH в CentOS 7
  3. Для з'єднання введіть парольну фразу.
  4. Выбрать место сохранения скопированных ключей SSH в CentOS 7
  5. Не забудьте перезавантажити сервер через sudo service sshd restart , щоб оновити списки ключів.

Ручне копіювання відкритого ключа

Іноді трапляються ситуації, коли неможливо використовувати утиліту ssh-copy-id , а також відсутній доступ по паролю. Тоді копіювання здійснюється вручну.

  1. Спершу дізнайтеся цей ключ через вже знайому команду cat , ввівши в консолі cat ~/.ssh/id_rsa.pub .
  2. Узнать содержимое файла с ключами в терминале SSH в CentOS 7
  3. Скопіюйте його вміст в окремий файл.
  4. Ознакомиться с созданным открытым ключом SSH в CentOS 7
  5. Підключіться будь-яким зручним методом до віддаленого комп'ютера і створіть каталог mkdir -p ~/.ssh . Команда нічого не зробить, якщо каталог вже існує.
  6. Создать папку для хранения открытого ключа SSH в CentOS 7
  7. Залишилося тільки внести дані в файл &171;authorized_keys&187; . Команда echo public_key_string >> ~/.ssh/authorized_keys додасть ключ до файлу або створить файл спочатку, якщо він відсутній. Замість &171;public_key_string&187; потрібно вставити отриману раніше рядок з ключем.
  8. Скопировать открытый ключ на удаленный компьютер SSH в CentOS 7

На цьому процедура копіювання ключа успішно завершена. Завдяки цьому тепер доступна аутентифікація до сервера шляхом введення ssh username@remote_host . Однак підключитися можна і через пароль, що знижує безпеку такої мережі.

Вимкнення автентифікації паролем

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

  1. На віддаленому сервері запустіть файл конфігурації SSH через sudo nano /etc/ssh/sshd_config .
  2. Открыть конфигурационный файл для редактирования SSH в CentOS 7
  3. Відшукайте параметр &171;PasswordAuthentication&187; і змініть значення на no .
  4. Отключить вход по паролю для SSH в CentOS 7
  5. Збережіть зміни та завершіть роботу в текстовому редакторі.
  6. Сохранить изменения конфигурационного файла SSH в CentOS 7
  7. Новий параметр набуде чинності лише після перезавантаження служби sudo systemctl restart sshd.service .
  8. Перезапустить сервис после изменений конфигурации SSH в CentOS 7

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

більше статей на цю тему: