Введение
В данной заметке разберем создание пары ключей с помощью Puttygen, добавление публичного ключа на сервер и настройку SSH для авторизации.
Данный способ создания ключей уже достаточно неудобен, с учетом того, что на Windows 10–11 можно сделать это всё в одну команду, посмотреть можно в данной заметке.
Немного о самих ключах:
SSH-ключи — пара защищенных шифрованием ключей (приватный и публичный), которые используются для авторизации при подключении к серверу по протоколу SSH. Для большей надежности и безопасности подключения SSH рекомендуется использовать SSH-ключи вместо пароля.
Для этого нам надо проделать несколько простых пунктов:
- Создать пару SSH-ключей — после создания приватный ключ хранится на компьютере, с которого выполняется подключение, а публичный ключ размещается на сервере;
- Разместите наш сгенерированный публичный ключ на сервере.
- Настроить SSH для авторизации по ключам
Создание SSH ключей на Windows с помощью Puttygen.
1. Скачиваем с оф. сайта утилиту Puttygen и запускаем ее
2. После жмем на кнопку Generate:
3. Далее просто водим рандомно мышкой пока не будет сгенерирована пара ключей:
4. Готово, наш открытый (public key) и приватный ключ (private key) созданы и готовы к использованию:
- Public key – можем делится, размещается на сервере на котором будем использовать авторизацию по ключам
- Private key – держим под подушкой и не с кем не делимся
- 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 ключей с отключением возможности подключиться в связке логин+пароль, данные ключи можно использовать на остальных своих серверах, так же настоятельно рекомендую поставить пароль на приватный ключ и сделать бекап пары ключей, что бы исключить невозможность подключения к серверу при их утере.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)
Так же вы можете отблагодарить автора материально: