Использование SSH-ключей

SSH-ключи являются одним из продвинутых способов авторизации в Linux-сервер. Данная авторизация намного безопасней в сравнении с авторизацией по паролю, а так же предоставляет удобство авторизации без запроса и ввода пароля, который могут взломать или потерять. При применении данного способа авторизации используется связка открытого и закрытого ключа (public и private ключи). Открытый ключ можно без опасений распространять в различных ресурсах, когда как закрытый ключ является доступом (или же паролем к открытому ключу) ко всем ресурсам, где находится открытый ключ и его нужно хранить в надежном месте, нигде не распространяя.

Функционал SSH-ключей встроен во все популярные SSH-клиенты для подключения к серверам. Для настройки ключей в Windows можно использовать ПО Putty, на Linux имеются встроенные функции для этого. Инструкция ниже пошагово укажет как выполнить генерацию ключа, добавить публичный ключ на сервер и подключится с закрытым ключом с помощью SSH-клиента.

Для генерации ключа можно воспользоваться приложением PuttyGen, которое является дополнительным ПО к основному приложению Putty. Его можно скачать с официального сайта по ссылке: Официальный сайт Putty

putty_download

После скачивания и запуска ПО - будет доступно окно по созданию и управлению ключами. Потребуется нажать кнопку "Generate" для создания новой пары ключей. Приложение запросит провести произвольно мышью по окну приложения для случайной генерации ключей.

putty_generate

После успешной генерации в верхней части окна появится строка с публичным ключом, который необходимо скопировать для дальнейшего использования на конечном сервере. Так же нужно нажать кнопку "Save private key" для сохранения закрытого ключа, его необходимо сохранить в надежном месте. Указанные открытый и закрытый ключи можно использовать только друг с другом, они не совместимы с другими ключами раздельно.

putty_keys

Дальше требуется добавить публичный ключ на сервер, к которому необходимо подключаться по закрытому ключу в дальнейшем. Для этого требуется авторизоваться с помощью пароля к Linux-серверу, после перейти в директорию ".ssh" с помощью команды "cd .ssh" (возможно так-же создать её перед этим командой "mkdir .ssh" если такая директория отсутствует). После перехода нужно создать файл "authorized_keys" с помощью команды "nano authorized_keys", после вставив значение открытого ключа с помощью правой кнопки мыши и сохранив, нажав Ctrl + X и после Y.

Так-же требуется настройка SSH-сервера, для этого необходимо ввести команду "nano /etc/ssh/sshd_config" и внести определенные изменения, а именно:

  • Найти значение "#PubkeyAuthentication yes" и раскомментировать его, убрав символ # в начале строки.
  • Проверить что строка "AuthorizedKeysFile .ssh/authorized_keys" является раскомментированной и имеет указанное значение.
  • Рекомендуется изменить значение "PasswordAuthentication yes" на "PasswordAuthentication no" для отключения удаленной авторизации SSH по паролю.

После изменений необходимо сохранить файл, нажав так-же Ctrl + X и Y. Потребуется перезапустить SSH-сервер для применения изменения, для этого можно перезапустить сам Linux-сервер или ввести команду "service sshd restart".

На данном этапе сервер готов для подключения по сохраненному закрытому ключу. Для этого необходимо добавить ключ в Putty, запустив приложение и в левой части окна открыв раздел "SSH", а после "Auth" и открыв пункт "Credentials". В первой строке нужно выбрать сохраненный закрытый ключ, который сохранялся ранее.

putty_usekey

После всех действий Вы сможете подключаться к серверу с использованием безопасной пары ключей без необходимости ввода паролей!