Автоматична ssh-аутентифікація по ключу

Linux SSD VPSВисокопроізводітельние VPS-сервери з локальним SSD-сховищем на новітньому обладнанні Linux HDD VPSНадежние VPS-сервери з HDD-сховищем, побудованому на архітектурі RAID10 Windows VPSСоздайте повністю готовий до роботи віртуальний сервер з Windows за кілька хвилин! Виділені сервериМощние виділені сервери забезпечать високу продуктивність, надійність і безпеку ваших даних

1 vCore • 512MB • 10GB • 1TB • 200Mbps SSD 1

2 vCores • 1GB • 20GB • Unlimited • 200Mbps SSD 2

2 vCores • 2GB • 40GB • Unlimited • 200Mbps SSD 4

4 vCores • 4GB • 60GB • Unlimited • 200Mbps SSD 8

4 vCores • 8GB • 80GB • Unlimited • 200Mbps SSD 16

8 vCores • 16GB • 160GB • Unlimited • 200Mbps SSD 32

8 vCores • 32GB • 320GB • Unlimited • 200Mbps

1 vCore • 512MB • 10GB • 1TB • 200Mbps HDD 1

2 vCores • 1GB • 50GB • Unlimited • 200Mbps HDD 2

2 vCores • 2GB • 100GB • Unlimited • 200Mbps HDD 4

2 vCores • 4GB • 200GB • Unlimited • 200Mbps HDD 8

4 vCores • 8GB • 400GB • Unlimited • 200Mbps HDD 16

4 vCores • 16GB • 800GB • Unlimited • 200Mbps HDD 32

4 vCores • 32GB • 1600GB • Unlimited • 200Mbps

2 vCores • 2GB • 100GB • Unlimited • 200Mbps Windows 4

4 vCores • 4GB • 200GB • Unlimited • 200Mbps Windows 8

4 vCores • 8GB • 400GB • Unlimited • 200Mbps Windows 16

8 vCores • 16GB • 800GB • Unlimited • 200Mbps Windows 32

8 vCores • 32GB • 1600GB • Unlimited • 200Mbps

Intel Xeon L5630 x2 • 8c / 16t 2.13 / 2.4Ghz • 32GB DDR3 • 2TB SAS Medium 64

Intel Xeon L5630 x2 • 8c / 16t 2.13 / 2.4Ghz • 64GB DDR3 • 2TB SAS x2 + RAID Heavy 64

Intel Xeon L5640 x2 • 12c / 24t 2.2 / 2.8Ghz • 64GB DDR3 • 2TB SAS x2 + RAID Heavy 128

Intel Xeon L5640 x2 • 12c / 24t 2.2 / 2.8Ghz • 128GB DDR3 • 2TB SAS x4 + RAID

Автоматична SSH-аутентифікація по ключу

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

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

Аутентифікація за допомогою пароля

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

Плюси парольного доступу:

  • простота використання;
  • відсутність необхідності спеціальної настройки з боку клієнта і сервера.

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

Аутентифікація за допомогою ключа

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

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

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

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

Плюси аутентифікації за допомогою ключа:

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

Мінуси ключової пари:

  • неналежна захист файлу ключа користувачем не виключає можливості його крадіжки.

Генерація ключів на клієнтській машині під управлінням ОС Windows

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

Автоматична ssh-аутентифікація по ключу

Після того, як ключ згенерує, програма покаже вікно з публічним ключем і відбитком приватного.

Автоматична ssh-аутентифікація по ключу

В поле Public key прописана публічна частина ключа, яка буде зберігатися на сервері. В поле Key comment можна додати пояснення до ключу. Якщо у клієнта є кілька ключів для аутентифікації на різних сервісах, там можна прописати назву сервера, для якого використовується ключ. Відбиток ключа (fingerprint) необхідний для підвищення безпеки з'єднання і точної ідентифікації хоста. При першому підключенні користувач отримає повідомлення про те, що даний ключ що раніше не використовувався для аутентифікації користувача. Якщо ж повідомлення підлягає повторній видачі, це означає, що на сервері змінилися суспільні ключі, або хтось видає себе за хост.

В поле Key passphrase можна задати пароль до ключа. В такому випадку, при аутентифікації користувача по ключу, сервер буде додатково запитувати пароль. Для збереження згенерованого ключа натисніть кнопку Save private key. Якщо пароль в поле Key passphrase не було наведено, перш, ніж зберегти ключ, програма видасть соотвествующее повідомлення.

Ключ буде збережений у файлі з розширенням .ppk (PuTTY private key). Даний файл необхідно зберегти в безпечному місці, захищеному від доступу третіх осіб.

Завантаження публічного ключа на сервер

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

Автоматична ssh-аутентифікація по ключу

Відкриється вікно терміналу, в якому нам необхідно ввести ім'я користувача і пароль. У нашому випадку ми залягання під користувачем root.

Будьте уважні при наборі пароля: символи не відображаються під час введення!

Ключі на сервері зберігаються в папці

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

Автоматична ssh-аутентифікація по ключу

Під час генерації ключа в PuTTYgen публічна частина відображалася в поле Public key. Якщо ви не зберегли ключ, відкрийте файл приватного ключа в PuTTYgen - програма виділить публічний ключ з приватного. Скопіюйте його та вставте в рядок терміналу в програмі nano. Зробити це можна клацанням правою кнопкою миші.

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

Автоматична ssh-аутентифікація по ключу

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

Генерація ключів на клієнтській машині під управлінням ОС Ubuntu

Принцип генерації ключа в Ubuntu не відрізняється від такого під Windows. Варто зауважити, що пакет PuTTY доступний і в репозиторіях Ubuntu Linux. Ми ж сгенерируем ключ за допомогою іншої популярної утиліти - OpenSSH.

Спочатку встановимо пакет з репозиторіїв за допомогою команди:

Після того, як пакет буде встановлений, ми сгенерируем новий ключ за допомогою команди:

Програма запропонує ввести стандартні параметри: ім'я файлу і пароль до приватного ключу. За замовчуванням ключ буде збережений в директорії /home/user/.ssh/ у вигляді двох файлів - id_rsa (приватний ключ) і id_rsa.pub (публічний ключ).

Автоматична ssh-аутентифікація по ключу

Після генерації програма відобразить у вікні терміналу і відбиток ключа. Для того, щоб завантажити ключ на сервер, введемо команду:

Після успішної аутентифікації термінал видасть запрошення до роботи з консоллю сервера.

Імпорт файлу OpenSSH в PuTTY

Формат файлів ключів OpenSSH відрізняється від формату ключів PuTTY. Для того, щоб ключ, створений в Unix-системі, успішно використовувався під ОС Windows в клієнті PuTTY, його необхідно конвертувати. Для цього потрібно запустити генератор ключів PuTTYgen і додати туди файл ключа.

Автоматична ssh-аутентифікація по ключу

Виберіть файл ключа, згенерований в Unix-системі. Програма видасть повідомлення про те, що ключ успішно імпортовано.

Автоматична ssh-аутентифікація по ключу

Для збереження ключа в потрібному нам форматі необхідно натиснути кнопку Save private key. Виберіть місце зберігання ключа і ім'я файлу. Пам'ятайте, що файл приватного ключа повинен бути надійно захищений від доступу третіх осіб!

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

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

Підпишіться на нашу розсилку,
щоб отримувати останні оновлення нашого блогу!

Схожі статті