В целях повышения безопасности и упрощения процесса аутентификации хорошим тоном для системного администратора является организация подключения к Linux-системе при помощи SSH-ключей. В отличие от традиционного ввода пароля, SSH-ключи позволяют обеспечить более надёжный метод проверки подлинности. SSH-ключи состоят из публичного и секретного, где публичный ключ размещается на сервере, а секретный в свою очередь хранится на клиентской рабочей станции. При установлении соединения секретный ключ клиента подтверждает его личность серверу, обеспечивая безопасный доступ без необходимости ввода пароля.
При заказе Linux-системы на сайте RUVDS хостер мы предоставляем возможность добавить SSH-ключи на виртуальный сервер прямо в личном кабинете. В настоящей статье разберём, как создать SSH-ключи с помощью PuTTY, привязать их к виртуальному серверу в личном кабинете RUVDS и, используя тот же PuTTY, подключиться к данному VPS.
Установка PuTTY и создание SSH-ключей
PuTTY — это свободно распространяемая программа с открытым исходным кодом, используемая для подключения к удалённым хостам через различные сетевые протоколы, такие как SSH, Telnet, Rlogin, а также через серийные порты. PuTTY популярна среди пользователей Windows, но также доступна и для других операционных систем, таких как Unix и macOS.
Итак, если на вашем локальном компьютере ещё не установлена PuTTY, перейдите на страницу загрузки данного софта, кликните по ссылке Download PuTTY и загрузите соответствующий дистрибутив. По окончании загрузки запустите мастер и с его помощью установите PuTTY на свою локальную машину.
В состав установленного программного обеспечения кроме всего прочего входит инструмент, используемый для создания и управления SSH-ключами. Таким инструментом является PuTTYgen (PuTTY Key Generator).

Чтобы создать новые SSH-ключи, запустите PuTTYgen и перейдите в Key ➝ Generate Key Pair, где сгенерируйте пару SSH-ключей, стимулируя данный процесс произвольными движениями мыши. Когда процесс завершится, сохраните секретный ключ в файл. Чтобы это сделать, используйте кнопку Save private key.

После этого перейдите в окно Public key for pasting into OpenSSH authorized_keys file, выделите его содержимое и скопируйте в буфер обмена при помощи контекстного меню или комбинации клавиш Ctrl C.

Добавление SSH-ключей в личном кабинете RUVDS
На данном этапе переключитесь в личный кабинет RUVDS, где перейдите в Настройки ➝ Управление SSH-ключами, и затем для добавления нового ключа нажмите Добавить ключ.

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

Теперь закажите новый виртуальный сервер на основе любого Linux-образа. При создании сервера в разделе SSH-ключи обязательно выберите ранее добавленный ключ.

Подключение к Linux-серверу через PuTTY
После оплаты и установки операционной системы для подключения к созданному серверу на своей локальной машине запустите PuTTY.

В строке Host Name (or IP address) укажите IP-адрес созданного Linux-сервера, затем в поле Saved Sessions введите название создаваемого подключения и нажмите Save.

Далее перейдите в Connection ➝ SSH ➝ Auth ➝ Credentials, где нажмите Browse и выберите ранее сохранённый файл секретного ключа.

После чего вернитесь в категорию Session и сохраните внесённое в сессию изменение при помощи кнопки Save.

И, наконец, для подключения к удалённому серверу нажмите Open. Если при соединении с сервером вы используете учётную запись root, то аутентификация в данной сессии будет произведена с применением SSH-ключей.
Если же для входа на Linux-сервер вы используете другого пользователя, то будет применена аутентификация при помощи пароля. Поэтому, чтобы использовать SSH-ключи для учётной записи, не являющейся пользователем root, необходимо скопировать файл открытого ключа из профиля пользователя root в соответствующий каталог в профиле требуемой учётной записи. После чего нужно присвоить директории .ssh и её содержимому соответствующие права и разрешения. Делается это так же, как и при подключении к Linux-серверу из командной строки.
То есть данная процедура должна содержать следующие шаги:
- подключитесь к серверу под именем учётной записи не являющейся
root-ом и в её домашнем каталоге создайте директорию.ssh:
$ mkdir -p ~/.ssh
- далее получите интерактивную сессию суперпользователя:
$ sudo -i
- после чего скопируйте файл открытого ключа в ранее созданный каталог
.ssh(в примере мы рассматриваемyour-userв качестве названия пользователя, для которого производится настройка аутентификации при помощи SSH-ключей):
# cp ~/.ssh/authorized_keys /home/your-user/.ssh/
- затем закройте сессию суперпользователя, используя комбинацию клавиш
CtrlD, и удалите права доступа для группы и других пользователей на директорию~/.ssh, чтобы только пользовательyour-userкак владелец имел доступ к этому каталогу и файлам, содержащимся в нём:
$ sudo chmod -R go= ~/.ssh
- и, наконец, измените владельца и группу всех файлов и подкаталогов в директории
~/.ssh:
$ sudo chown -R $USER:$USER ~/.ssh
После выполнения данных шагов вы сможете использовать SSH-ключи при аутентификации под учётной записью your-user во время подключения к удалённой Linux-машине из сохранённой сессии в PuTTY.
