В нашем справочнике есть мануал, рассказывающий, как добавить SSH-ключ в личном кабинете RUVDS. Также у нас есть инструкция по генерации SSH-ключа при помощи PuTTY и добавлении его на сервер через личный кабинет RUVDS. В настоящем руководстве разберём, как подключиться к VPS через PuTTY с использованием SSH-ключей, созданных в командной строке.
Создание SSH-ключей и добавление их в личном кабинете RUVDS
Во-первых, на локальной рабочей станции, с которой вы планируете подключаться к удалённому Linux-серверу, запустите командную строку и создайте SSH-ключ. Именно этот ключ мы будем использовать, чтобы подключиться к виртуальному серверу через PuTTY. Например, так выглядит команда для создания SSH-ключа длиной 4096 бит с использованием алгоритма RSA:
ssh-keygen -t rsa -b 4096
Вывод данной команды будет выглядеть примерно следующим образом:

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

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

Таким образом, созданный на локальном компьютере SSH-ключ будет сохранён в списке ключей на сайте RUVDS.

Создание и первоначальная настройка сервера
Следующий этап — это создание виртуального сервера. Подключение к нему будет осуществляться при помощи SSH-ключа, добавленного в личном кабинете RUVDS. Для создания сервера на сайте RUVDS перейдите во вкладку Заказать
, выберите удовлетворяющую ваши требования конфигурацию, укажите одну из доступных Linux-систем и в разделе SSH-ключи активируйте ранее добавленный ключ.

После оплаты заказываемого сервера и установки на него операционной системы вы уже сможете подключиться к нему по SSH с использованием беспарольной аутентификации. То есть при регистрации на удалённой системе будет применяться ваш SSH-ключ вместо пароля. Следует учитывать, что на данном этапе такое подключение пока возможно только из командной строки и только при помощи учётной записи root
. Таким образом, для того, чтобы осуществить соединение с сервером, откройте командную строку и выполните команду вида:
ssh root@X.X.X.X
Здесь X.X.X.X
— IP-адрес вашего виртуального выделенного сервера.

Теперь разберём, как перенести SSH-ключ другому пользователю, чтобы не использовать при подключении к Linux-машине учётную запись root
. Для этого сначала создайте нового пользователя. В нашем примере он будет называться your-user
:
# adduser your-user
Затем наделите созданного пользователя полномочиями администратора, чтобы вы могли использовать его вместо root
-а. С этой целью необходимо включить вашу учётную запись в группу sudo
. Например, команда ниже используется для этого в операционных системах Debian и Ubuntu:
# usermod -aG sudo your-user
А при помощи такой команды вы сможете сделать то же самое в CentOS:
# usermod -aG wheel your-user
Также, если вы используете CentOS, установите своему пользователю пароль. Дело в том, что в данной операционной системе по умолчанию пользователь не имеет пароля при создании:
# passwd your-user
Перенос публичного ключа в профиль нового пользователя
После выполнения вышеописанных команд в текущем сеансе командной строки переключитесь на пользовательский аккаунт вашей новой учётной записи:
# su - your-user
Теперь находясь в домашней директории вашего пользователя создайте каталог .ssh
:
$ cd ~
$ mkdir -p ~/.ssh
После чего завершите текущую сессию своего пользователя, чтобы вернуться в сеанс root
-а. Для этого используйте комбинацию клавиш Ctrl
D
или команду:
$ exit
Здесь переместите файл публичного ключа из профиля суперпользователя в профиль вашей учётной записи. Обратите внимание, файл публичного ключа authorized_keys
должен находиться в каталоге .ssh
:
# mv ~/.ssh/authorized_keys /home/your-user/.ssh/
Затем снова подключитесь к системе под учётной записью вашего пользователя. Это необходимо сделать для корректной настройки прав доступа к директории, в которой находится SSH-ключ:
# su - your-user
Подключившись, удалите все права для группы и других пользователей для всех файлов и каталогов внутри директории .ssh
:
$ sudo chmod -R go= ~/.ssh
А также измените на текущего пользователя владельца и группу всех файлов и каталогов внутри директории .ssh
:
$ sudo chown -R $USER:$USER ~/.ssh
После чего отключитесь от сервера, чтобы проверить настроенное подключение.
На этом настройка удалённого Linux-сервера для подключения к нему с использованием SSH-ключей завершена. Чтобы подключиться к вашему VPS, откройте командную строку и выполните там следующую команду, заменив your-user
на имя вашего пользователя, а X.X.X.X
— на IP-адрес вашего сервера:
ssh your-user@X.X.X.X
Подключение через PuTTY с использованием SSH-ключей
Теперь рассмотрим, как подключиться к виртуальному Linux-серверу не из командной строки, а при помощи PuTTY.
Сначала запустите PuTTYgen — утилиту для создания и управления криптографическими ключами, используемую в пакетах программного обеспечения PuTTY. Для её запуска используйте соответствующий ярлык из главного меню:

В PuTTYgen перейдите Conversions
➝ Import key
:

По умолчанию созданные SSH-ключи располагаются в каталоге .ssh
, который находится в профиле вашего пользователя на локальном компьютере. Поэтому откройте каталог .ssh
и выберите файл секретного ключа. Как правило, такой файл носит имя id_rsa
:

После чего необходимо сохранить секретный ключ в формате, используемом PuTTY. Для этого нажмите Save private key
:

Затем выберите каталог, в который вы сохраните файл секретного ключа, и укажите имя данного файла. После чего нажмите Save
:

Далее закройте PuTTYgen и запустите непосредственно PuTTY:

В окне PuTTY укажите IP-адрес вашего сервера в строке Host Name
и введите название нового подключения в строке Saved Sessions
. После чего нажмите Save
. Таким образом вы сохраните текущее подключение к вашему VPS.

Далее перейдите в Connection
➝ SSH
➝ Auth
➝ Credentials
и в строке Private key file for authentication
нажмите кнопку Browse
:

В открывшемся окне перейдите в каталог, содержащий сохранённый ранее файл секретного ключа, выберите данный файл и нажмите Open
:

Затем снова вернитесь во вкладку Sessions
и сохраните внесённое в сессию изменение при помощи кнопки Save
:

Теперь всё готово к подключению при помощи созданной сессии. Для соединения с сервером кликните Open
и в открывшемся окне терминала введите имя вашего пользователя. После нажатия Enter
PuTTY откроет сессию вашего пользователя с использованием SSH-ключей — публичного, находящегося на удалённом сервере, и секретного, сохранённого на локальной рабочей станции.

При этом пароль учётной записи в данном случае не будет использован при аутентификации на виртуальном Linux-сервере.
Таким образом, мы разобрали, как подключиться через PuTTY к виртуальной Linux-машине при помощи SSH-ключей, сгенерированных с использованием командной строки.