Visual Studio Code: подключаемся ко множеству VPS по ssh без пароля

Я люблю кодить на Python, автоматизировать рутину на Bash и делать что-то красивое на HTML и CSS. Использовать для этого собственный ноутбук — очень плохая затея, а вот иметь несколько VPS под разные проекты и кодить на них — это очень удобно.

В этой статье я расскажу, как с помощью Visual Studio Code можно быстро без паролей подключаться по ssh к разным VPS и разрабатывать на них удаленно.

Что нужно для работы?

Описанный ниже процесс настройки SSH-соединения и дальнейшего подключения VS Code подходит только к создаваемым серверам Enterprise-уровня.

Во-первых, конечно же, нам нужен сам Visual Studio Code (VS Code), не перепутайте просто с Visual Studio — это разные продукты. Скачать VS Code можно с официального сайта Microsoft или отсюда.

Во-вторых, понадобиться сгенерировать пару SSH-ключей. Поскольку работать с VS Code мы будем в Windows, генерацию ключей я тоже покажу в Windows:

  • Вызовите терминал (CMD) в Windows через кнопку поиск или пуск. Введите CMD — откроется терминал. Теперь введите команду: ssh-keygen. Затем укажите название пары для ключей:
  • Вопрос «Enter passphrase (empty for no passphrase)» — можно пропустить, нажав Enter. Следующий вопрос «Enter same passphrase again» также можно пропустить.
  • В итоге будет сгенерирована пара ключей, а программа выведет на экран следующее:
  • Пара SSH-ключей сохранится в директории: C:\Users\%USERNAME%\.ssh. Скопируйте этот путь и вставьте его в проводник Windows. В директории будут парные файлы, один из файлов не будет иметь расширения, а у другого будет расширение .pub — этот файл будет содержать публичную часть SSH-ключа, которую нужно скопировать на сервер.

В-третьих, нужно скопировать публичную часть SSH-ключа на сервер. Перейдите в настройки аккаунта в раздел SSH-ключи и создайте новый SSH-ключ:

  • Придумайте название ключа;
  • Откройте файл с расширением .pub любым текстовым редактором, скопируйте содержимое и вставьте его в поле «Код ключа», нажмите кнопку «Создать».

    Теперь можно создавать сервер и указать в качестве опции — SSH-ключ для подключения:

Теперь у нас всё готово для настройки VS Code для подключения по ssh к VPS, но сначала убедимся в том, что мы можем зайти на сервер по ssh без пароля. Для этого введем в CMD команду: ssh -i [путь к непубличной части ключа] root@[ip-адрес сервера]. Сервер вас должен пустить без пароля, после успешного подключения можно переходить к настройке VS Code.

Настройка VS Code для подключения к VPS

Откройте VS Code и создайте в удобном для вас месте json-файл, запишите в него следующие данные:

Host my_1cloud_apideveloper_server #Указывается название подключения
    User root #Имя пользователя для подключения, по умолчанию root
    HostName 188.227.75.42 #IP-адрес сервера для подключения
    IdentityFile C:\Users\User\.ssh\1cloud #путь к приватной части ssh-ключа

После сохранения джейсона, кликнете по зеленому индикатору в левом нижнем углу. Откроется окно управления подключением по SSH. Выберите пункт открыть конфигурационный ssh-файл, далее выберите пункт параметры файла подключения.

Тут нужно будет указать абсолютный путь до json-файла конфигурационного файла.

Теперь у нас всё готово для подключения. Возвращаемся в центральное меню и опять кликаем на зеленый значок подключения в левом нижнем углу экрана. В этот раз кликаем по первому пункту меню — подключиться удаленно по SSH:

Далее выберете из списка созданное вами ранее SSH-подключение. В моём случае — это my_1cloud_adpideveloper_server:

После успешного подключения вы увидите сведения об удаленном соединение в специальных статус-баррах:

Отлично, мы подключились и можно удаленно работать. Теперь я расскажу, как работает VS Code по SSH и, почему это удобно.

Как работает VS Code по SSH?

Главная фишка удаленной работы по SSH через VS Code — это то, что все плагины и модули, с которыми вы будете работать в VS Code, будут устанавливаться не на вашу локальную машину, а на удаленный сервер. Это очень удобно, потому что вы можете одновременно разрабатывать под разные платформы и на разных языках и всё это не перемешивается в одном месте.

Так один сервер может быть заточен под разработку на Python и на нём могут быть установлены Pythlint, Django, PyYAML и многие другие библиотеки для Python и плагины для VS Code, а другой сервер может содержать набор софта для разработки под C++ при этом VS Code на локальной машине будет оставаться «чистым».

Тот же принцип разделенной работы относится и к Git. На каждой машине может быть свой репозиторий. Вы также можете одновременно работать на разных серверах в разных окнах на одном рабочем столе. Это удобно, когда проект использует ресурсы нескольких серверов.

Ещё одним плюсом подхода хранения плагинов и модулей VS Code на удаленных машинах является то, что все плагины и модули сохраняются на удаленной машине после удаления VS Code с локального компьютера. Вы всегда можете в будущем вернуться к разработке своего проекта без установки и настройки плагинов и модулей — они сохраняться на удаленном сервере.

Сейчас, я рассказал о том, что нужно для начала работы в VS Code, как его настроить и, как он работает по SSH. Давайте подведём итог и пойдём кодить.

Кратко о подключении VS Code по ssh без пароля

VS Code — это бесплатное IDE от Microsoft для всех популярных языков программирования. Его преимущество в мультиплатформенности и возможности расширения функций дополнительными модулями и плагинами. Он позволяет разрабатывать, как на локальной машине, так и на удаленном сервере, подключившись к нему через SSH.

Пара SSH-ключей очень просто генерируется в Windows с помощью CMD. Достаточно вызвать CMD через «поиск» или «пуск», ввести ssh-keygen, указать название пары ключей, проследовать в директорию C:\Users\%USERNAME%\.ssh, открыть ключ с расширением .pub и скопировать его на виртуальный сервер.

Виртуальные серверы Enterprise-уровня от 1cloud имеют удобную функцию добавления SSH-ключа при создании сервера без копирования их с помощью команд scp, ssh-copy-id или настройки демона ssh. Для добавления SSH-ключа потребуется:

  1. Открыть публичный ключ на своём локальном компьютере любым текстовым редактором и скопировать его содержание;
  2. Перейти в личный кабинет Панели 1cloud → раздел «Настройки» → вкладка «SSH-ключи», нажать кнопку «добавить SSH-ключ», заполнить поля: «название» и «код ключа», и нажать кнопку «создать»;
  3. Создать виртуальный сервер под управлением Ubuntu или Debian и выбрать в качестве метода аутентификации SSH-ключ, который был создан ранее.

Подключение VS Code по SSH осуществляется через специальный конфигурационный json-файл, который можно создать в VS Code и разместить в удобном для вас месте. В json нужно внести следующие данные:

Host my_1cloud_apideveloper_server #Указывается название подключения
    User root #Имя пользователя для подключения, по умолчанию root
    HostName 188.227.75.42 #IP-адрес сервера для подключения
    IdentityFile C:\Users\User\.ssh\1cloud #путь к приватной части ssh-ключа

Теперь достаточно указать путь расположения конфигурационного файла в VS Code через меню работы с удаленными подключениями и выбрать созданный вами хост для подключения:

На этом всё. VS Code настроен, виртуальный сервер создан — можно разрабатывать себе в удовольствие.