Настройка SSH авторизации на Linux по ключам с помощью Puttygen

Введение

В данной заметке разберем создание пары ключей с помощью Puttygen, добавление публичного ключа на сервер и настройку SSH для авторизации.

Данный способ создания ключей уже достаточно неудобен, с учетом того, что на Windows 10–11 можно сделать это всё в одну команду, посмотреть можно в данной заметке.


Немного о самих ключах:

SSH-ключи — пара защищенных шифрованием ключей (приватный и публичный), которые используются для авторизации при подключении к серверу по протоколу SSH. Для большей надежности и безопасности подключения SSH рекомендуется использовать SSH-ключи вместо пароля.

Для этого нам надо проделать несколько простых пунктов:

  • Создать пару SSH-ключей — после создания приватный ключ хранится на компьютере, с которого выполняется подключение, а публичный ключ размещается на сервере;
  • Разместите наш сгенерированный публичный ключ на сервере.
  • Настроить SSH для авторизации по ключам

Создание SSH ключей на Windows с помощью Puttygen.

1. Скачиваем с оф. сайта утилиту Puttygen и запускаем ее

2. После жмем на кнопку Generate:

Настройка SSH авторизации на Linux по ключам с помощью Puttygen

3. Далее просто водим рандомно мышкой пока не будет сгенерирована пара ключей:

Настройка SSH авторизации на Linux по ключам с помощью Puttygen

4. Готово, наш открытый (public key) и приватный ключ (private key) созданы и готовы к использованию:

  • Public key – можем делится, размещается на сервере на котором будем использовать авторизацию по ключам
  • Private key – держим под подушкой и не с кем не делимся
Настройка SSH авторизации на Linux по ключам с помощью Puttygen

  • Key passphrase – Задаем пароль на приватный ключа (private key), настоятельно рекомендую.
  • Save public key – Кнопка сохранения публичного ключа (public key).
  • Save private key – Кнопка сохранения приватного ключа (private key).
  • Key comment – можно указать осознанный комментарий к публичному ключу

Сохраняем публичный ключ в формате OpenSSH (“Public key for pasting into OpenSSH authorized_keys file:” (Ключи которые создает Puttygen не подходит для OpenSSH на сервера, поэтому содержимое открытого ключа (public key) копируем из окна “Public key for pasting into OpenSSH authorized_keys file:” значение которого выделено на скриншоте выше)) в файл, а так же два других с помощью кнопок Save public key и Save private key.


Настройка SSH на сервере для авторизации по ключам

1. Подключаемся на удаленный сервер через SSH вводим в консоли команды ниже:

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

2. Вставляем ключ OpenSSH (“Public key for pasting into OpenSSH authorized_keys file:”) в файл authorized_keys жмем Ctrl+x и сохраняем

3. Открываем конфигурационный файл SSH, раскомментируем и изменим строки ниже (для поиска можно использовать Ctrl+w):

nano /etc/ssh/sshd_config
  • PubkeyAuthentication yes – разрешаем использование ключей для авторизации
  • PermitRootLogin no – убираем возможность логинится root
  • PasswordAuthentication no – убираем возможность авторизации с помощью логина+пароль

4. Далее нам нужно перезагрузить службу SSH:

systemctl restart sshd

Проверка авторизации SSH по ключам

Готово, дальше переходим в Putty, что бы проверить подключение по ключам и добавляем наш приватный ключ как показано на скриншоте ниже, вводим адрес сервера во вкладке Sessions и пробуем подключиться:

Подключение по SSH с ключами через Putty

Если все сделано правильно, после ввода нашего логина произойдет подключение по ключам без ввода паролей пользователя (если вы установили на приватный ключ пароль, то на этой стадии потребуется его ввод):

Подключение по SSH с ключами через Putty

Заключение

Готово, в этой заметке мы разобрали как обезопасить свой сервер с помощью SSH ключей с отключением возможности подключиться в связке логин+пароль, данные ключи можно использовать на остальных своих серверах, так же настоятельно рекомендую поставить пароль на приватный ключ и сделать бекап пары ключей, что бы исключить невозможность подключения к серверу при их утере.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)

Так же вы можете отблагодарить автора материально:

Оставьте комментарий