В целях повышения безопасности и упрощения процесса аутентификации хорошим тоном для системного администратора является организация подключения к 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/
- затем закройте сессию суперпользователя, используя комбинацию клавиш
Ctrl
D
, и удалите права доступа для группы и других пользователей на директорию~/.ssh
, чтобы только пользовательyour-user
как владелец имел доступ к этому каталогу и файлам, содержащимся в нём:
$ sudo chmod -R go= ~/.ssh
- и, наконец, измените владельца и группу всех файлов и подкаталогов в директории
~/.ssh
:
$ sudo chown -R $USER:$USER ~/.ssh
После выполнения данных шагов вы сможете использовать SSH-ключи при аутентификации под учётной записью your-user
во время подключения к удалённой Linux-машине из сохранённой сессии в PuTTY.