Пары ключей

Еще один способ аутентификации на сервере – пара ключей RSA: открытый и закрытый. Открытый хранится на сервере, к которому будет выполняться подключение, а закрытый – на удаленном компьютере (или другом сервере), с которого выполняется подключение.

Ниже в качестве примера приведена схема (Рисунок 19) безопасного обмена ключами между "Отправителем" и "Получателем". "Злоумышленник" может читать сообщения, если они не зашифрованы. Здесь "Отправитель" или "Получатель" шифруют сообщение при помощи открытого ключа принимающей стороны, которая его дешифрует при помощи своего закрытого ключа.

Рисунок 19 - Безопасный обмен ключами

Чтобы сгенерировать такую пару ключей, достаточно выполнить команду:

ssh-keygen -t rsa

Команду нужно выполнять на рабочей станции от имени пользователя, который будет в дальнейшем подключаться к удаленному компьютеру. Путь к хранению ключей можно оставить по умолчанию.

После создания ключей можно переходить к следующему шагу – копированию открытого ключа на удаленный сервер, выполнив следующую команду:

ssh-copy-id -i ~/.ssh/id_rsa.pub rosa@192.168.0.104

В этом примере 192.168.0.104 – это IP-адрес удаленного сервера. После ввода пароля ключ копируется в папку .ssh домашней директории пользователя.

Сразу же после выполнения копирования следует проверить доступ при помощи созданной пары ключей:

ssh rosa@192.168.0.104

Для отключения возможности входа по паролю необходимо в файле /etc/ssh/sshd_config отредактировать значение PasswordAuthentication и присвоить no (Рисунок 20).

Рисунок 20 - Редактирование параметра PasswordAuthentication

После изменения настроек нужно перезагрузить службу SSH:

sudo systemctl restart ssh

После проведенных настроек при попытке подключения пользователем, для которого не определена пара ключей, будет выдаваться ошибка подключения.

При этом подключение при помощи ключа будет успешным.

Отключение доступа по паролю значительно повышает безопасность сервера.