Доступ к Linux-серверам через SSH-ключи

В инструкции описаны способы генерации SSH-ключей и подключение с их помощью к виртуальным Linux-серверам.

Что такое SSH-ключ?

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

SSH-ключи (Secure SHell) основаны на принципах криптографии с открытым ключом.

На самом деле ключ состоит из пары ключей шифрования, которые математически связаны друг с другом: закрытый (private) и открытый (public) ключ.

При использовании данного способа аутентификации сервер SSH проверяет существование пары закрытого ключа для открытого ключа, с которым подключается пользователь.

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

Как сгенерировать SSH-ключ?

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

Генерация ключа в ОС Windows

Для генерации SSH-ключей в Windows используется PuTTY Key Generator.

После установки запустите программу, в нижней части экрана в качестве Type of key to generate укажите RSA и поставьте значение поля Number of bits in generated key равным 2048. Нажмите кнопку Generate и свободно перемещайте курсор по экрану для выработки случайных данных.

Примечание: вы можете использовать ключевую фразу, но это не является обязательным, но при ее использовании обеспечивает большую надежность.

SSH

Сохраните приватный и открытый ключи в удобное место.

Генерация ключа в ОС Linux

Для генерации ключа в Linux используется утилита ssh-keygen с опцией -t для создания нужного типа:

ssh-keygen -t rsa

В диалоге необходимо указать имя файла для публичного ключа (можно оставить значение по умолчанию) и при необходимости ввести секретную фразу:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rFYVrQxeRAAoLTMyGlYsKeFrnTl84qB129wG5PhmCyI root@Ubuntu1804x64
The key's randomart image is:
+---[RSA 2048]----+
|..+o ....++.     |
|*+=.o   . ...    |
|+=.=  .. +..     |
|. + o+ ...o      |
| +.Bo.o S        |
|o.o.+= =         |
|E ..o O o        |
| . . = o         |
|      .          |
+----[SHA256]-----+

Примечание: использование фразы не является обязательным, но при ее использовании обеспечивает большую надежность.

В нашем примере public-key находится в файле /root/.ssh/id_rsa.pub, а private в /root/.ssh/id_rsa.

Добавление SSH-ключа в панель управления

Чтобы добавить SSH-ключ в панель управления serverspace откройте Настройки профиля → SSH-ключи и нажмите кнопку Добавить SSH-ключ. Введите удобное название и код открытого ключа. Нажмите кнопку Создать.

SSH

Настройка доступа к серверу

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

SSH

С помощью кнопки Плюс прямо на этой странице можно добавить новый ключ.

Подключение к серверу

Подключение к серверу из ОС Linux

Для подключения используйте утилиту ssh:

ssh <user-name>@<IP-address>

Примечание: ключ должен находиться в каталоге /<user-name>/.ssh/

Подключение к серверу из ОС Windows

SSH

Откройте приложение Putty, в вертикальном меню перейдите Connection → SSH → Auth и в поле укажите путь до сгенерированного приватного ключа.

Затем вернитесь в настройки сессии (Session) и заполните данные для подключения.