Виртуальная машина
February 18, 2023

Виртуальная машина. SSH-ключ

После наших тренировок локально мы готовы попробовать наши силы на виртуальной машине какого-нибудь провайдера. Но... Всегда есть "но"...

Как вы будете отдавать команды машине, которая находится где-то далеко на серверах провайдера? Для решения этой задачи существует SSH - сетевой протокол, позволяющий производить удалённое управление ОС. Простыми словами, на виртуальной машине провайдера установлен Linux, на котором запущен ssh-сервер, на вашей локальной машине, WSL, есть ssh-клиент. Вы запускаете ssh-клиент, указываете к кому серверу подключиться и отдаете команды удаленной машине.

Чтобы вся эта магия сработала, вам нужно пройти аутентификацию на ssh-сервере удаленной машины. Делается это двумя способами:

  • логин-пароль
  • ssh-ключ

У подхода "логин-пароль" есть один недостаток: если вы управляете несколькими виртуальными машинами, то запоминать/хранить пароли от всех машин - накладно, делать на всех машинах одинаковый пароль - не безопасно. И тут на сцену выходит SSH-ключ. SSH-ключ состоит из двух частей: приватный ключ, публичный ключ. Публичный ключ вы сообщаете ssh-серверу удаленной машины. Приватный хранится на вашей машине в строгой секретности (под паролем), не теряйте его, сделайте всё для этого (резервные копии). Таким образом вам нужно помнить только пароль от приватной части SSH-ключа. Удобно, не правда ли?

Теперь откроем терминал WSL Ubuntu и сгенерируем SSH-ключ, с помощью команды:

ssh-keygen

Путь к ключам я оставляю стандартный, задаю пароль для приватной части ключа, и готово.

Проверяем публичный ключ:

cat ./.ssh/id_rsa.pub

Этот набор символом нам в дальнейшем понадобится копировать и вводить в форме создания виртуальной машины у провайдера.