Настройка входа через сертификат
Чтобы использовать частные ключи для SSH входа на сервер в CentOS, выполните следующие шаги:
-
Генерация ключевой пары SSH: используйте команду
ssh-keygen
для создания ключевой пары. Существует множество способов генерации ключей, такие как putty, xhell или mobaxterm, которые включают встроенные функции генерации. Например, выполните следующую команду и следуйте инструкциям:ssh-keygen -t rsa -b 4096
-
На целевом сервере добавьте открытый ключ в список авторизованных ключей: скопируйте содержимое созданного вами открытого ключа в файл
~/.ssh/authorized_keys
на целевом сервере, то есть переименуйтеid_rsa.pub
вauthorized_keys
. -
Настройте SSH-сервис для использования сертификатов для аутентификации. Для этого необходимо сначала изменить конфигурационный файл SSH
/etc/ssh/sshd_config
и включитьPublic Key Authentication
, установив параметр в “yes”. -
После обновления конфигурации SSH перезапустите сервис
sshd
, чтобы изменения вступили в силу. Перезапуститеsshd
с помощью следующей команды:systemctl restart sshd
-
Затем на клиентском компьютере, с которого вы планируете подключаться к серверу, сохраните файл сертификата в SSH-папке пользователя (по умолчанию
~/.ssh
). -
Наконец, используйте команду, подобную следующей, для подключения к целевому серверу:
ssh -i /path/to/private_key user@server_ip
Здесь,
/path/to/private_key
— это путь к файлу сертификата,user
— это имя пользователя, аserver_ip
— IP-адрес целевого сервера.
Запрет входа по паролю
Мы уже говорили о входе с использованием сертификата. Как запретить вход по паролю и разрешить только аутентификацию по сертификату?
В CentOS можно настроить только аутентификацию по сертификату, изменив конфигурационный файл SSH /etc/ssh/sshd_config
. Конкретные шаги:
-
Войдите в систему на сервер CentOS под пользователем root.
-
Откройте конфигурационный файл SSH
/etc/ssh/sshd_config
и найдите следующие две строки:#PubkeyAuthentication yes
#PasswordAuthentication yes
-
Уберите символ комментария
#
перед строкой#PubkeyAuthentication yes
и изменитеyes
наonly
, т.е.:PubkeyAuthentication only
Это значит, что разрешается только аутентификация с использованием открытого ключа (сертификата), и вход с паролем будет недоступен.
-
Уберите символ комментария
#
перед строкой#PasswordAuthentication yes
и изменитеyes
наno
, т.е.:PasswordAuthentication no
Это означает, что вход по паролю будет запрещен.
-
Сохраните изменения в файле и закройте его.
-
Перезапустите SSH-сервис, чтобы настройки вступили в силу. Используйте следующую команду для перезапуска сервиса SSH:
systemctl restart sshd
После завершения настройки только пользователи, обладающие соответствующим закрытым ключом (сертификатом), смогут войти на сервер CentOS. Если соответствующего ключа нет, вход будет невозможен.