Настройка SSH-подключения по ключам
Шаг 1. Генерация приватного и публичного ключа
Для генерации приватного и публичного ключа выполним команду:
ssh-keygen -a 1000 -b 4096 -o -t rsa
Далее необходимо:
1. Ввести путь, куда будут сохранены ключи – по-умолчанию это ~/.ssh/id_rsa
2. Ввести парольную фразу для расшифровки приватного ключа. Если оставить поле пустым, при его использовании пароль не будет запрашиваться
Так же важно добавить публичный ключ в один из конфигурационных файлов – authorized_keys:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Пояснение
SSH-ключ будет в файле id_rsa, в файле id_rsa.pub будет связанным с ним публичный ключ. Файл authorized_keys будет хранить в себе список из отпечатков (публичный ключей) для каждого приватного ключа, доступного для этого пользователя.
Шаг 2. Настройка SSHD
Изменим файл /etc/ssh/sshd_config, задав (изменив) ряд опций. Если закрытый ключ генерировался для любых пользователей, но root не должен иметь права входить на сервер:
# Запрещаем вход пользователю root
PermitRootLogin no
# Разрешаем использование ключей
PubkeyAuthentication yes
# Запрещаем использование паролей
PasswordAuthentication no
# Запрещаем аутентификацию пользователей через модуль PAM
# (встроенная аутентификация в Linux)
UsePAM no
Если закрытый ключ генерировался для пользователя root, изменяем всего 1 параметр:
# Разрешаем вход пользователю root
PermitRootLogin yes
По желанию, можно разрешить вход каким-то конкретным пользователям:
AllowUsers root
Шаг 3. Перезапуск демона SSH и проверка работоспособности
Для применения изменений выполним перезапуск сервера SSH:
systemctl restart ssh
Далее, попробуем войти на этот же сервер с нашим закрытым ключом:
ssh username@localhost -i /путь/к/приватному/ключу
Если ошибок в конфигурации нет, SSH предложит нам добавить хост в список доверенных (только при первом входе) и разрешит вход. Если на этапе задания пароля для приватного ключа вы установили пароль, он будет запрошен у вас для дешифровки.
Примечание
Возможно, понадобится отредактировать файлы в Include-директории. Обычно, это:
/etc/ssh/sshd_config.d/*.conf
В этих файлах хранятся настройки, которые могут перезаписать значения из основного конфигурационного файла SSHD, поэтому допустимо такое решение:
rm -f /etc/ssh/sshd_config.d/*.conf
ВАЖНО!
Эта команда удалит все содержимое с расширением *.conf из директории /etc/ssh/sshd_config.d !!!
No comments to display
No comments to display