Невелика інструкція по організації SSH доступу до віддаленого Linux сервера. Нагадаємо, що стандартний метод аутентифікації користувача на сервері Unix (Linux, FreeBSD) при доступі по SSH – пара логін і пароль. Але вводити їх не завжди зручно, особливо якщо таких серверів багато. Існує альтернатива такому типу доступу – організація SSH доступу по парі RSA ключів (відкритого і закритого) і кодової фразі (яка, в общем-то, не обов’язкова).

У цій статті ми розглянемо використання подібного типу доступу, який можна реалізувати за допомогою однієї з найпопулярнішої програми роботи по SSH – ГРИЗНІ.

Для роботи нам знадобляться наступні утиліти сімейства PuTTY:

  • puttygen.exe – пакет для створення пари ключів
  • putty.exe – сам термінал ssh –
  • pscp.exe – утиліта копіювання файлів по протоколу scp

Генеруємо пару RSA ключів

Для цього запускаємо утиліту PuTTYgen, Перевіряємо, що в якості типу ключа обраний «SSH-2 RSA»І натискаємо кнопку«Створити«.

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

Генеруємо rsa ключі

У полі «Ключовий коментар» можна задати опис ключа (воно буде відображається під час аутентифікації по ключу).

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

Потім натискаємо кнопки «Зберегти відкритий ключ»І«Зберегти приватний ключ»І зберігаємо відповідно відкритий і закритий ключі в файл з іменами, наприклад:«public.key«І«private.ppk«.

Налаштовуємо публічний ключ на сервері Linux.

Файл відкритого ключа «public.key»Потрібно скопіювати на той сервер Linux, до якого планується підключення. Для цього скористаємося утилітою pscp.exe. Команда копіювання файлу буде виглядати приблизно так:

pscp c:keypublic.key root@192.168.1.21:/tmp/foo

Далі скопійований ключ потрібно помістити в домашній каталог користувача в файл ~ / .ssh / authorized_keys.

Для цього заходимо на сервер по SSH (як завжди) і виконуємо наступну команду:

$ ssh-keygen -i -f /tmp/foo/public.key >> /home/myuser/.ssh/authorized_keys

де myuser, Ім’я користувача, якому буде дозволено авторизуватися за даним ключу.

Також не забудьте переконайтеся, що на сервері дозволена авторизація по ключу. Для цього в файлі / etc / ssh / sshd_config повинні бути раскоментіровани наступні рядки:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

Підключаємося по SSH за допомогою ключа

Запускаємо PuTTY і в лівій частині екрана переходимо в розділ Connections -> SSH -> Auth.

Вибираємо закритий rsa ключ в putty

знаходимо рядок «Приватна ключ файл для автентифікація », Після чого потрібно натиснути кнопку «Browse» і вказати наш файл з приватним ключем «private.ppk».
Потім на основній вкладці вказуємо ім’я / ip адресу нашого Linux сервера і запускаємо підключення. Після чого система як зазвичай попросить вказати логін, а потім кодову фрази ключа (якщо вона вказувалася). Якщо ключова фраза не вказана, то консоль сервера відкриється без пароля.
Щоб не доведеться кожного разу лізти в налаштування Auth і вказувати файл ключа, настройки можна зберегти, для цього на головній внесок є кнопки Save (зберегти настройки PuTTY) і Load (завантажити настройки). Зберегти настройки putty Всі фабричні установки Putty зберігаються в реєстрі, тому їх в принципі можна перенести з одного комп’ютера на інший простим експортом / імпортом шматка реєстру (докладніше описано в статті Перенесення налаштувань PuTTY)

Крім того, щоб кожен раз вручну не вводити ім’я користувача, логін користувача також можна зберегти в PuTTY (пункт Connection Data Auto-login username).

Якщо щось не виходить, аналізуємо лог /var/log/auth.log на сервері.

Leave a Reply

Your email address will not be published. Required fields are marked *