Основний спосіб підключення до сервера Linux – це протокол SSH . Цей тип з'єднання є безпечним, оскільки всі дані, що передаються через нього, зашифровані. Щоб встановити SSH-з'єднання, вам слід налаштувати його на віддаленому сервері, до якого ви хочете підключитися, та на клієнті з боку користувача. Існує безліч програмного забезпечення для SSH-з'єднання. Що стосується Linux, то найпопулярнішим є пакет OpenSSH, а для Windows люди здебільшого використовують PuTTY.
Давайте детальніше розглянемо конфігурацію сервера на прикладі Ubuntu Server 18.04, а потім спробуємо підключитися до сервера з Linux і Windows.
Все, що ми робитимемо, буде з облікового запису звичайного користувача. У цьому випадку ми створили користувача « mihail », а обліковий запис « root » за замовчуванням вимкнено.
Налаштування на стороні сервера
Налаштуйте пакет, який виконує цю команду:
sudo apt install openssh-server
Після завершення встановлення переконайтеся, що служба запущена. Використовуйте цю команду:
systemctl status sshd
Статус « Активний (працює) » означає, що служба ввімкнена та працює нормально.
Щоб уникнути блокування вхідних з’єднань брандмауером, переконайтеся, що ви вимкнули його, оскільки ми не збираємося налаштовувати мережевий брандмауер у цій статті.
Використовуйте цю команду:
sudo ufw disable
На цьому етапі ви вже можете підключитися до сервера. З налаштуваннями за замовчуванням сервер дозволяє підключатися до стандартного порту 22 з аутентифікацією на основі пароля.
Підключення SSH з Linux
Як правило, клієнт OpenSSH встановлюється на Linux за замовчуванням і не потребує додаткової ручної настройки. Підключення можна встановити з терміналу за допомогою команди ssh. Параметрами в цьому випадку будуть ім’я користувача та IP-адреса віддаленого сервера. На нашому тестовому сервері, який ми використовуємо як приклад, є лише один обліковий запис «mihail», тому ми будемо використовувати його.
ssh [email protected]
Під час першого підключення вам потрібно буде підтвердити додавання відкритого ключа сервера до бази даних, тому дайте відповідь « так ». Після цього ви можете ввести пароль. Якщо підключення успішно встановлено, ви побачите вітальний текст командного рядка сервера. Тепер усі команди будуть виконуватися безпосередньо на віддаленому сервері.
SSH з Windows
Відкрийте Putty та встановіть параметри з’єднання. Переконайтеся, що перемикач « Тип з’єднання » встановлено на SSH . Введіть IP-адресу в поле « Ім’я хоста », значення за замовчуванням 22 у полі « Порт » та натисніть « Відкрити ».
Під час першого підключення Putty попросить вас підтвердити, що ви довіряєте цьому серверу, тому натисніть « Так ».
Після введення логіна і пароля ви побачите командний рядок віддаленого сервера.
Аутентифікація за ключем. Підвищення рівня безпеки
Коли клієнт намагається встановити безпечне з’єднання із сервером через SSH, перш ніж дозволити з’єднання, сервер вимагає автентифікації (перевірки) клієнта. Як згадувалося раніше, автентифікація на основі пароля зазвичай використовується за замовчуванням. Він не забезпечує надійної безпеки, тому що завжди є спосіб підібрати його. Крім того, аутентифікація за паролем не застосовується до SSH-з'єднань з використанням скриптів.
Для цього типу завдань існує спеціальний метод аутентифікації за ключем. Справа в тому, що клієнт генерує закритий і відкритий ключі, а потім відкритий ключ надсилається на сервер. Після цього вам не потрібен пароль для підключення до сервера, оскільки аутентифікація здійснюється на основі відкритих і закритих ключів клієнта. Щоб забезпечити належний рівень безпеки, доступ до закритого ключа має бути обмежений. Через те, що закритий ключ зберігається на стороні клієнта і не передається через мережу, цей метод вважається більш безпечним.
Аутентифікація за ключем в Linux
Давайте згенеруємо відкритий і закритий ключі на клієнті за допомогою утиліти ssh-keygen. Інструмент запропонує змінити шлях до закритого ключа та ввести парольну фразу для додаткової безпеки. Залиште всі параметри за замовчуванням, натискаючи Enter при всіх запитах.
В результаті, в домашньому каталозі в папці .ssh ви знайдете два згенеровані файли: id_rsa та id_rsa.pub , які містять відповідно закритий та відкритий ключі.
Після цього вам потрібно буде надіслати відкритий ключ на сервер. Для цього скопіюйте вміст файлу « id_rsa.pub » у файл « ~/.ssh/authorized_keys » на сервері. Давайте розглянемо найпростіший спосіб за допомогою інструменту « ssh-copy-id ». Введіть логін та IP-адресу сервера, як і у випадку звичайного підключення. Після введення пароля відкритий ключ клієнта буде автоматично скопійовано на сервер. Виконайте цю команду:
ssh-copy-id [email protected]
Після того, як ви все це зробите, сервер більше не вимагатиме введення пароля.
Аутентифікація за ключем в Windows
Відкрийте PUTTYGEN та натисніть « Згенерувати ». Щоб згенерувати ключі, вам просто потрібно навести курсор миші на екран, і інструмент випадковим чином згенерує ключі.
Після того, як ключі будуть згенеровані, натисніть кнопку « Зберегти закритий ключ » та збережіть його у файл із закритим ключем на вашому диску. Ви можете вказати будь-який шлях, але трохи пізніше вам потрібно буде вказати його в Putty. Потім скопіюйте відкритий ключ з верхньої частини вікна.
Давайте надішлемо відкритий ключ, просто скопіювавши його в термінал. Відкриємо Putty та підключимося до сервера як завжди. Тепер створимо “ .ssh/authorized_keys ” та обмежимо доступ до файлу іншим користувачам, щоб він був доступний лише творцю.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Після створення файлу вставте в нього відкритий ключ клієнта. На попередньому етапі ми скопіювали відкритий ключ у буфер обміну. Щоб записати у файл те, що є в буфері обміну, скористайтеся командою cat і перенаправленням виводу.
cat > .ssh/authorized_keys
Після введення команди клацніть правою кнопкою миші у вікні терміналу та вставте те, що знаходиться в буфері обміну. Щоб підтвердити введення, натисніть комбінацію клавіш « Ctrl+D » та відключіться від сервера.
Тепер давайте вкажемо шлях до закритого ключа в Putty і знову підключимося до сервера.
Відтепер для підключення до сервера потрібно буде лише ввести ім'я користувача. Якщо ви намагаєтеся підключитися до сервера з іншого пристрою, який не має потрібного закритого ключа, сервер запитає пароль. Після налаштування автентифікації на основі ключа ви можете заборонити доступ за допомогою пароля.