Настройка SSH авторизации в Linux по ключам на Windows с помощью Puttygen.
Введение
В данной заметке разберем создание пары ключей с помощью Puttygen, добавление публичного ключа на сервер и настройку SSH для авторизации.
Данный способ создания ключей уже достаточно неудобен, с учетом того, что на Windows 10–11 можно сделать это всё в одну команду, посмотреть можно в данной заметке.
Немного о самих ключах:
SSH-ключи — пара защищенных шифрованием ключей (приватный и публичный), которые используются для авторизации при подключении к серверу по протоколу SSH. Для большей надежности и безопасности подключения SSH рекомендуется использовать SSH-ключи вместо пароля.
Для этого нам надо проделать несколько простых пунктов.
- Создать пару SSH-ключей — после создания приватный ключ хранится на компьютере (в секрете), с которого выполняется подключение, а публичный ключ размещается на сервере к которому выполняется подключение;
- Разместите наш сгенерированный публичный ключ на сервере.
- Настроить SSH для авторизации по ключам
Создание SSH ключей на Windows с помощью Puttygen.
1. Скачиваем с оф. сайта утилиту Puttygen и запускаем ее
2. После жмем на кнопку Generate:
3. Далее просто водим рандомно мышкой, пока не будет сгенерирована пара ключей.
4. Готово, наш открытый (public key) и приватный ключ (private key) созданы и готовы к использованию.
Сохраняем публичный ключ в формате 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. Root пользователем ткрываем конфигурационный файл SSH, раскомментируем и изменим строки ниже (для поиска можно использовать Ctrl+w):
nano /etc/ssh/sshd_config
- PubkeyAuthentication yes - разрешаем использование ключей для авторизации
- PermitRootLogin no - убираем возможность логинится root
- PasswordAuthentication no - убираем возможность авторизации с помощью логина+пароль
4. Далее нам нужно перезагрузить службу SSH:
systemctl restart sshd
Проверка авторизации SSH по ключам
Готово, дальше переходим в Putty, что бы проверить подключение по ключам и добавляем наш приватный ключ как показано на скриншоте ниже, вводим адрес сервера во вкладке Sessions и пробуем подключиться:
Если все сделано правильно, после ввода нашего логина произойдет подключение по ключам без ввода паролей пользователя (если вы установили на приватный ключ пароль, то на этой стадии потребуется его ввод):
Заключение
Готово, в этой заметке мы разобрали как обезопасить свой сервер с помощью SSH ключей с отключением возможности подключиться в связке логин+пароль, данные ключи можно использовать на остальных своих серверах, так же настоятельно рекомендую поставить пароль на приватный ключ и сделать бекап пары ключей, что бы исключить невозможность подключения к серверу при их утере.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)