Налаштування SSH на Debian

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

Налаштування SSH на Debian

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

Встановлення SSH-сервера та SSH-клієнта

За замовчуванням SSH входить в стандартний набір утиліт операційної системи Debian, однак через будь-яких особливостей потрібні файли можуть застаріти або просто бути відсутнім, наприклад, коли користувач вручну зробив деінсталяцію. Якщо ви потребуєте попередньої установки SSH-server і SSH-client, виконайте наступну інструкцію:

  1. Відкрийте меню &171; Пуск & 187; і запустіть звідти &171;Термінал&187; . Зробити це можна і через стандартну комбінацію клавіш Ctrl + Alt + T .
  2. Переход к терминалу для дальнейшей установки SSH в Debian
  3. Тут вас цікавить команда sudo apt install openssh-server , що відповідає за установку серверної частини. Введіть її і натисніть на Enter Для активації.
  4. Ввод команды в терминале для установки сервера SSH в Debian
  5. Як Ви вже знаєте, дії, що виконуються з аргументом sudo , потрібно активувати, вказавши пароль суперкористувача. Враховуйте, що вводяться в цьому рядку Символи не відображаються.
  6. Подтверждение команды для установки сервера SSH в Debian
  7. Ви будете повідомлені про те, що пакети додані або оновлені. Якщо SSH-server вже інстальований в Debian, з'явиться повідомлення про наявність зазначеного пакета.
  8. Уведомление о завершении инсталляции сервера SSH в Debian
  9. Далі потрібно додати в систему і клієнтську частину, що стосується і того комп'ютера, до якого в майбутньому буде здійснюватися підключення. Для цього використовується подібна команда sudo apt-get install openssh-client .
  10. Команда для установки клиентской части SSH в Debian

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

Управління сервером і перевірка його роботи

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

  1. Використовуйте команду sudo systemctl enable sshd , щоб Додати сервер в автозавантаження, якщо це не сталося автоматично. У разі потреби скасування запуску разом з операційною системою використовуйте systemctl disable sshd . Тоді для ручного запуску знадобиться вказувати systemctl start sshd .
  2. Команда для добавления сервиса SSH в Debian для автозагрузки
  3. Всі подібні дії абсолютно завжди повинні бути виконані від імені суперкористувача, тому потрібно вводити його пароль.
  4. Ввод пароля при добавлении сервиса SSH в Debian для автозагрузки
  5. Залучіть команду ssh localhost для перевірки сервера на працездатність. Замінивши localhost на адресу локального комп'ютера.
  6. Команда для подключения к локальной сети через SSH в Debian
  7. При першому підключенні ви будете повідомлені про те, що джерело не є перевіреним. Це відбувається, оскільки ми ще не виставили налаштування безпеки. Зараз просто підтвердьте продовження підключення, ввівши yes .
  8. Подтверждение подключения к локальной сети через SSH в Debian

Додавання пари ключів RSA

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

  1. Відкрийте &171;Термінал&187; і введіть там ssh-keygen .
  2. Запуск команды для генерации двух пар ключей при настройке SSH в Debian
  3. Ви можете самостійно вибрати місце, куди потрібно зберегти шлях до ключа. Якщо немає бажання його міняти, просто натисніть на клавішу Enter .
  4. Ввод расположения для хранения двух пар ключей SSH в Debian
  5. Зараз створюється відкритий ключ. Він може бути захищений кодовою фразою. Введіть її в відобразилася рядок або залиште порожній, якщо не хочете активувати цю опцію.
  6. Ввод ключевой фразы для доступа к ключам при настройке SSH в Debian
  7. При введенні ключової фрази доведеться вказати її ще раз, щоб підтвердити.
  8. Подтверждение ввода ключевой фразы для настройки SSH в Debian
  9. Відобразиться повідомлення про створення публічного ключа. Як бачите, йому було присвоєно набір випадкових символів, а також створилося зображення за рандомних алгоритмів.
  10. Успешное создание двух пар ключей при настройке SSH в Debian

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

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

У Debian існує три варіанти, за допомогою яких можна скопіювати відкритий ключ на сервер. Ми пропонуємо відразу ознайомитися з усіма ними, щоб в майбутньому вибрати оптимальний. Це актуально в тих ситуаціях, коли один з методів не підходить або не задовольняє потреби користувача.

Спосіб 1: команда ssh-copy-id

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

  1. У консолі введіть команду ssh-copy-id username@remote_host і активуйте її. Замінивши username@remote_host на адресу цільового комп'ютера, щоб відправка пройшла успішно.
  2. Стандартная команда для копирования публичного ключа в SSH в Debian
  3. При першій спробі з'єднання ви побачите повідомлення "The authenticity of host '203.0.113.1 (203.0.113.1)' 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" . Виберіть позитивну відповідь, щоб продовжити підключення.
  4. Подтверждение первого подключения к серверу SSH в Debian при копировании ключей
  5. Після цього утиліта самостійно займеться пошуком і копіюванням ключа. У підсумку, якщо все пройшло успішно, на екрані з'явиться повідомлення &171; /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: &171;. Це означає, що можна вводити пароль і переходити до безпосереднього управління віддаленим робочим столом.
  6. Информация об успешном копировании ключа SSH в Debian стандартным способом

Додатково уточнимо, що після першої успішної авторизації в консолі з'явиться повідомлення наступного характеру:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

У ньому йдеться про те, що ключ був успішно доданий на віддалений комп'ютер і тепер не виникне ніяких проблем при спробах підключення.

Спосіб 2: експорт ключа через SSH

Як Ви знаєте, експорт публічного ключа дозволить підключатися до вказаного сервера без попереднього введення пароля. Зараз, поки ключ ще не знаходиться на цільовому комп'ютері, підключитися через SSH можна шляхом введення пароля, щоб потім вручну перенести необхідний файл. Для цього в консолі вам доведеться вписати команду cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys" .

Копирование ключей SSH в Debian через стандартную команду

На екрані має з'явитися повідомлення

The authenticity of host '203.0.113.1 (203.0.113.1)' 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)?
.

Підтвердьте його, щоб продовжити з'єднання. Публічний ключ буде автоматично скопійований в кінець конфігураційного файлу &171;authorized_keys&187; . На цьому процедуру експорту можна вважати закінченою.

Спосіб 3: Ручне копіювання ключа

Цей метод підійде тим користувачам, у кого немає можливості створити віддалене підключення до цільового комп'ютера, проте є фізичний доступ до нього. В такому випадку ключ доведеться переносити самостійно. Для початку визначте відомості про нього на серверному ПК через cat ~/.ssh/id_rsa.pub .

Определение номера ключа для дальнейшего ручного копирования SSH в Debian

У консолі повинна відобразитися рядок ssh-RSA + ключ у вигляді набору символів= = demo@test . Тепер можна перейти до іншого комп'ютера, де слід створити нову директорію, ввівши mkdir -p ~/.ssh . У ній же додається текстовий файл під назвою authorized_keys . Залишилося тільки вставити туди певний раніше ключ через echo + рядок публічного ключа > & gt;~/.ssh/authorized_keys . Після цього аутентифікація буде доступна без попереднього введення паролів. Здійснюється це через команду ssh username@remote_host , де username@remote_host слід замінити на ім'я необхідного хоста.

Подключение к удаленному компьютеру для дальнейшего переноса ключа SSH в Debian

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

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

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

  1. Відкрийте файл конфігурації /etc/ssh/sshd_config через будь-який зручний текстовий редактор, це може бути, наприклад, gedit або nano.
  2. Запуск текстового редактора для настройки конфигурационного файла SSH в Debian
  3. У списку відшукайте рядок «PasswordAuthentication» і зніміть знак , щоб зробити цю команду активною. Змініть значення yes на no , щоб відключити цікаву опцію.
  4. Нахождение строки, отвечающей за аутентификацию по паролю SSH в Debian
  5. Після завершення натисніть на Ctrl + O , щоб зберегти зміни.
  6. Сохранение изменений после настройки аутентификации по паролю SSH в Debian
  7. Не змінюйте назву файлу, а просто натисніть на Enter для застосування настройки.
  8. Подтверждение сохранения конфигурационного файла SSH в Debian
  9. Можна залишити текстовий редактор, натиснувши на Ctrl + X .
  10. Выход из текстового редактора после настройки конфигурационного файла SSH в Debian
  11. Усі зміни набудуть чинності лише після перезавантаження служби SSH, тому зробіть це відразу через sudo systemctl restart ssh .
  12. Перезапуск SSH в Debian после внесения изменений в конфигурационный файл

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

Налаштування параметра брандмауера

На завершення сьогоднішнього матеріалу хочемо розповісти про налаштування міжмережевого екрану, який буде використаний для дозволів або заборон з'єднань. Ми пройдемося тільки по основних пунктах, взявши за приклад Uncomplicated Firewall (UFW).

  1. Для початку давайте переглянемо список існуючих профілів. Ввівши sudo ufw app list і натисніть на Enter .
  2. Просмотр списка открытых подключений межсетевого экрана для SSH в Debian
  3. Підтвердьте дію, вказавши пароль суперкористувача.
  4. Ввод пароля при просмотре списка подключений межсетевого экрана SSH в Debian
  5. У списку знайдіть SSH. Якщо цей рядок там присутній, значить, все функціонує коректно.
  6. Нахождение строки SSH в Debian при изучении правил межсетевого экрана
  7. Дозвольте з'єднання через цю утиліту, написавши sudo ufw allow OpenSSH .
  8. Добавление SSH в Debian для межсетевого экрана для разрешения подключений
  9. Увімкніть брандмауер, щоб оновити правила. Робиться це через команду sudo ufw enable .
  10. Включение межсетевого экрана после внесения изменений SSH в Debian
  11. Ви в будь-який момент можете перевірити поточний стан брандмауера, ввівши sudo ufw status .
  12. Просмотр статуса межсетевого экрана для отслеживания SSH в Debian

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

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