Настройка входа на сервер используя SSH сертификаты, является отличным способом повышения безопасности сервера (перебор паролей SSH станет бесполезным). А использование пароля для приватного сертификата снизит риск взлома ключей (при копировании сертификата входа).
В инструкции рассматриваются вопросы создания и настройки SSH сертификатов на сервере Ubuntu 18 и клиентском приложении — PuTTY.
Содержание
- Подготовка папок
- Предварительная настройка сервера
- Настройка SSH сертификатов на сервере
- Настройка подключения PuTTY
- Финальная настройка сервера
Подготовка папок
Выполняем подготовку папок и файла ключа на сервере.
Важный момент при настройке авторизации SSH по ключам — это указать правильные Права доступа на папку и файл ключа.
Выполните:
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
Предварительная настройка сервера
Разрешим вход с использованием публичного сертификата SHH на сервер и укажем путь до сертификата в настройках SSH, файл sshd_config.
nano /etc/ssh/sshd_config
Раскомментируйте или добавьте значения:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
Настройка SSH сертификатов на сервере
Выполним генерацию ключей SSH.
ssh-keygen -a 1000 -b 4096 -o -t rsa
Укажем путь хранения ключа и его имя
/root/.ssh/id_rsa
? В моем случае при создании сертификата для root оказалось важным указать жесткий путь /root/.ssh/, вместо относительного ~/.ssh/ чтобы избежать ошибки SSH Server refused our key.
Система так же создаст публичный ключ по данному пути.
Указываем ключевую фразу для доступа к приватному ключу.
Добавляем содержимое файла публичного ключа к файлу сертификата авторизации SSH.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Перезапускаем SSH
sudo service ssh restart
Настройка подключения PuTTY
Преобразуем приватный ключ в формат ключа PuTTY
? При попытке использовать скопированный ключ, PuTTY покажет ошибку: Unable to use key file (OpenSSH SSH-2 private key (new format)).
- Скопируйте приватный ключ id_rsa (или содержимое ключа в файл) на локальный компьютер;
- Запустите программу puttygen (из папки PuTTY);
- Нажмите кнопку Load и выберите файл приватного ключа;
- Введите пароль на приватный сертификат;
- Нажмите Save private key для сохранения приватного ключа в нужном формате (вы можете изменить Key comment, это не повлияет на работу ключа).
Настройка подключения PuTTY с использованием SSH сертификата
Добавьте приватный сертификат в подключение:
Connection > SSH > Auth > Private key file for authentication
При успешном подключении после ввода имени пользователя, выйдет запрос ключевой фразы сертификата, после чего вход на сервер должен быть успешно выполнен.
? Если при входе на сервер вы получаете сообщение SSH Server refused our key, проверьте правильность прав на папку .ssh и файл authorized_keys, а так же укажите прямой путь до папки с ключами при.
Финальная настройка сервера
Последний шаг настройки SSH — отключение возможности входа на сервер по паролю, в файле конфигурации.
nano /etc/ssh/sshd_config
Раскомментируйте или добавьте значениe:
PasswordAuthentication no
После чего перезапустите службу SSH.
sudo service ssh restart
Настройка авторизации по сертификату SSH — завершена!
Источник и статья на других языках: MHelp.pro