Недавно понадобилось организовать подключение к терминалам виртуальных машин развернутых в пространстве облачных решений Yandex.Cloud. Есть множество вариантов подключения по SSH (PuTTY, SmartTTY, Xshell, KiTTY, Terminus и т.д.), я несколько лет назад взял в работу BitVise SSH Client для Windows и на его примере посмотрим как подключаться просто к виртуальным машинам Yandex.

Всем и так ясно, что нужно скачать ПО BitVise SSH Client c сайта разработчика, установить и запустить. Далее, задача сводится к созданию профиля и для аутентификации у вас есть несколько вариантов, но для Yandex ВМ удобно пользоваться авторизацией по ключу и для начала надо создать эти самые ключи: открытый и закрытый. Для этого у вас должен быть установлен OpenSSH.

1) Создаем ключи в командной строке (powershell, cmd) Windows:

ssh-keygen -t ed25519

2)  После исполнения команды будет предложено указать имена файлов, в которые будут сохранены ключи, а также ввести пароль для закрытого ключа. Нажмите Enter, чтобы использовать предложенные командой имя и путь по умолчанию. Пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением .pub. Обычно создается каталог .ssh в профильном каталоге текущего пользователя и в нем размещаются ключи. Для просмотра содержимого ключа (оно нам понадобится) можно воспользоваться командой:

type C:\Users\<имя_пользователя>\.ssh\<имя_ключа>.pub

Где:
<имя_пользователя> — название вашей учетной записи Windows, например, User.
<имя_ключа> — название ключа, например, id_ed25519 или id_rsa.

Открытый ключ будет выведен на экран. Чтобы скопировать ключ, выделите его и нажмите правую кнопку мыши. Пример содержимого ключа примерно такой:

ssh-ed25519 AAAAC3NzaC1lZDI1********************************/paWQb490Dcytch ***********@KM*****a8hE64o.

3) Далее надо импортировать закрытый ключ в профиль BitVise клиента, как показано на картинке:

Может возникнуть проблема, что клиент в проводнике импорта видит только файлы со специфичными расширениями, а файл закрытого ключа у вас без расширений - это не должно вас смущать. При импорте закрытого ключа у вас будет запрошен пароль (разово), введите его.

Вы можете непосредственно в среде BitVise создать ключ в интерактивном исполнении без указания ключей как в командной строке. Для этого достаточно нажать кнопку Generate New. Там же можно и поменять пароль для ключа или же экспортировать и удалить ключи.

4) При создании виртуальной машины в Yandex.Cloud в блоке Доступ укажите пользователя, под которым вы будете работать в терминальной сессии и использовать его для удаленного терминального подключения. В плэйсхолдерах полей формы указано что нужно вписать. В части ключа вы указываете содержимое публичного ключа, который создавали на шаге 2.

5) Создавайте ВМ с параметрами и пока она создается вернитесь в клиента BitVise и завершите настройки профиля авторизации. Для этого в блоке Host укажите публичный адрес вашей ВМ, в поле Username имя того пользователя, что указали на предыдущем шаге 4 при создании ВМ, в поле Initial method выберите publickey (авторизация по ключу) и в следующем поле выберите профиль созданного ключа (в моем примере по дефолту Global 1). По желанию можете указать Passphrase - пароль закрытого ключа, можете не указывать, при создании сессии на подключение вам все равно придется его вводить. 

6) Если всё правильно сделали, можете нажимать кнопку Log In для создания терминальной сессии с вашей ВМ. Консоль BitVise достаточно подробно сопровождает информацией об организации соединения. Успешное соединение предоставит вам 3 новых кнопки в клиенте слева (как на картинке), вам нужно нажать New Terminal Console и вы откроете терминальную сессию вашей ВМ. Теперь можно работать с ВМ.

Из плюсов к удобству настроек организации подключений, встроенный SFTP клиент, который работает сразу в сессии с параметрами авторизации, указанными для терминала (конечно при условии, что ВМ имеет установленный FTP-сервер, например, vsFTPd).