Генерируем ключ:
ssh-keygen -t rsa
Вводим название файла: id_rsa
Вводим пароль (passphrase)
В директори /root/ появится два файлика: id_rsa и id_rsa.pub
Создаём здесь директорию .ssh, если её ещё нет, в ней создаём файл authorized_keys.
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Копируем к себе файлы id_rsa и id_rsa.pub, с сервера их удаляем.
Запускаем puttygen у себя на компе, загружаем в него файл id_rsa (без расширения), вводим passphrase.
Жмём "Save private key", сохраняем как id_rsa.ppk.
Всё, теперь эти 3 файла мы должны хранить как зеницу ока.
Создаём новый конфиг: /etc/ssh/sshd_config.d/my.conf и удаляем стандартные конфиги из этой папки, если есть.
Содержимое:
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
AuthenticationMethods publickey
PasswordAuthentication no
Идём в конфиг /etc/ssh/sshd_config, ищем там эту строчку и переносим её в самый конец файла:
Include /etc/ssh/sshd_config.d/*.conf
Перезагружаем конфиг SSH.
sudo systemctl reload ssh
Или, если systemctl list-units | grep ssh показывает ssh.socket:
sudo systemctl restart ssh.socket
Это безопасно, текущая сессия не разорвётся.
Пробуем авторизоваться по ssh-ключу:
Запускаем тулзу Pageant, загружаем в неё свой ключ id_rsa.ppk.
Заходим в Putty, вводим root - если вас сразу залогинило, не спросив пароль, значит всё нормально.
После этого вы можете попробовать закрыть Pageant и выполнить вход в Putty по логину и паролю - ничего не выйдет. А это значит, что доступ к серверу теперь имеет только владелец файлов id_rsa*, который в добавок должен знать passphrase.