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

Налаштовуємо SSH в CentOS 7

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

Установка компонентів і запуск сервера

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

  1. Відкрийте «Термінал» і пропишіть там команду 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 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. Ви будете ознайомлені з усіма доступними параметрами. Деякі з них закоментовані, тобто перед параметром стоїть знак #. Відповідно, прибираючи цей символ, ви раскомментіруете параметр, і він буде дійсний. Ви можете змінити стандартний порт, помінявши значення рядка «Port» на будь-яке інше. Крім цього, рекомендується встановити другий протокол, використовуючи «Protocol 2». Тоді підвищиться рівень безпеки.
  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

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

Створення пари 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 - найпростіший метод. Однак підійде він тільки в тому випадку, коли на комп'ютері присутній цей самий інструмент. Вам же потрібно прописати всього одну команду ssh-copy-id username@remote_host , де username @ remote_host - ім'я користувача і хост віддаленого сервера.

Копіювання ключів за допомогою спеціальної утиліти 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" cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" , де username @ remote_host - ім'я облікового запису та хоста віддаленого комп'ютера. Врахуйте, що опція >> додасть ключ в кінець файлу, а не перезапише його повністю. Тому введені раніше ключі теж будуть збережені.
  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. Залишилося тільки внести дані в файл «authorized_keys». Команда echo public_key_string >> ~/.ssh/authorized_keys додасть ключ в файл або створить спочатку файл, якщо він відсутній. Замість «public_key_string» потрібно вставити отриману раніше рядок з ключем.
  8. Скопіювати відкритий ключ на віддалений комп'ютер SSH в CentOS 7

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

Відключення аутентифікації по паролю

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

  1. На віддаленому сервері запустіть конфігураційний файл SSH через sudo nano /etc/ssh/sshd_config .
  2. Відкрити конфігураційний файл для редагування SSH в CentOS 7

  3. Пошукайте параметр «PasswordAuthentication» і змініть значення на no .
  4. Відключити вхід по паролю для SSH в CentOS 7

  5. Збережіть зміни і закрийте в текстовому редакторі.
  6. Зберегти зміни конфігураційного файлу SSH в CentOS 7

  7. Новий параметр набуде чинності лише після перезавантаження сервісу sudo systemctl restart sshd.service .
  8. Перезапустити сервіс після змін конфігурації SSH в CentOS 7

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