Виртуальная машина. SSH-ключ
После наших тренировок локально мы готовы попробовать наши силы на виртуальной машине какого-нибудь провайдера. Но... Всегда есть "но"...
Как вы будете отдавать команды машине, которая находится где-то далеко на серверах провайдера? Для решения этой задачи существует SSH - сетевой протокол, позволяющий производить удалённое управление ОС. Простыми словами, на виртуальной машине провайдера установлен Linux, на котором запущен ssh-сервер, на вашей локальной машине, WSL, есть ssh-клиент. Вы запускаете ssh-клиент, указываете к кому серверу подключиться и отдаете команды удаленной машине.
Чтобы вся эта магия сработала, вам нужно пройти аутентификацию на ssh-сервере удаленной машины. Делается это двумя способами:
У подхода "логин-пароль" есть один недостаток: если вы управляете несколькими виртуальными машинами, то запоминать/хранить пароли от всех машин - накладно, делать на всех машинах одинаковый пароль - не безопасно. И тут на сцену выходит SSH-ключ. SSH-ключ состоит из двух частей: приватный ключ, публичный ключ. Публичный ключ вы сообщаете ssh-серверу удаленной машины. Приватный хранится на вашей машине в строгой секретности (под паролем), не теряйте его, сделайте всё для этого (резервные копии). Таким образом вам нужно помнить только пароль от приватной части SSH-ключа. Удобно, не правда ли?
Теперь откроем терминал WSL Ubuntu и сгенерируем SSH-ключ, с помощью команды:
ssh-keygen
Путь к ключам я оставляю стандартный, задаю пароль для приватной части ключа, и готово.
cat ./.ssh/id_rsa.pub
Этот набор символом нам в дальнейшем понадобится копировать и вводить в форме создания виртуальной машины у провайдера.