Удаленная разработка через плагин Remote-SSH с помощью Visual Studio Code

Visual Studio Code – это популярная интегрированная среда разработки (IDE). Большой выбор плагинов, минималистичный дизайн и кроссплатформенная поддержка делают Visual Studio Code отличным выбором для разработчиков всех уровней. В этом мануале мы рассмотрим использование плагина Remote-SSH для удаленной разработки программного обеспечения. С помощью этого плагина можно редактировать файлы на локальной рабочей станции, а на удаленном сервере выполнять задачи разработки – запускать программы, модульные тесты или статический анализ.

Это может быть полезно по целому ряду причин. Предположим, у вас есть рабочая станция Windows, и вы хотите разрабатывать на Windows, но в конечном итоге ваш код будет работать на Linux. Кроме того, вам может потребоваться больше оперативной памяти или вычислительной мощности, чем имеется на текущем компьютере; или, к примеру, политика компании не позволяет включать код с персональных компьютеров разработчиков на свои рабочие станции.

В этом мануале мы подключим плагин Remote-SSH, настроим Visual Studio Code для выполнения кода на удаленном сервере и выполним на нем код из локальной установки.

Требования

  • Локальная машина разработки на Windows, MacOSX или Linux (данный мануал был протестирован на ChromeOS).
  • Платформа Visual Studio Code, которую можно загрузить и установить с официального сайта.
  • Пара ключей SSH. Инструкции для macOS и Linux вы найдете в мануале Установка SSH-ключей в Ubuntu 18.04.
  • Удаленный сервер Ubuntu 18.04, настроенный по этому мануалу.

1: Установка плагина Remote-SSH

В Extensions Marketplace можно скачать поддерживаемые и сторонние расширения для различных инструментов и языков программирования. Здесь нам нужно найти плагин Remote-SSH и установить его.

С левой стороны в интерфейсе IDE находится вертикальный ряд из пяти значков. Самый последний значок (четыре квадрата, один из которых расположен чуть выше остальных) отвечает за доступ к Extensions Marketplace.

Вы также можете получить доступ к этому разделу, нажав Ctrl+Shift+X. Когда вы откроете эту страницу, вы увидите список предлагаемых плагинов, которые можно установить.

Когда вы откроете Marketplace Extensions, введите Remote-SSH в строку поиска Search Extensions in Marketplace. Когда вы найдете этот плагин, выберите его, а затем нажмите зеленую кнопку Install, чтобы установить его.

Расширение будет установлено. Затем нужно настроить этот плагин, чтобы иметь возможность подключаться к удаленному серверу.

2: Настройка плагина Remote-SSH и подключение к серверу

Теперь, когда у вас установлен плагин, вы можете настроить его для подключения к серверу. Для этого вам понадобится следующая информация:

  • IP-адрес сервера или имя хоста.
  • Имя пользователя, с помощью которого вы подключитесь.
  • Закрытый ключ для аутентификации пользователя.

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

После установки Remote-SSH в левом нижнем углу интерфейса Visual Studio Code появится маленький зеленый прямоугольник. Если вы наведете указатель мыши на поле, всплывающее окно подскажет «Open a remote window». Найдите кнопку, которая выглядит как символы > и <, расположенные по диагонали друг от друга.

Нажмите эту кнопку, и вверху появится диалоговое окно. Выберите из списка Remote-SSH: Open Configuration File…

Следующее окно спросит вас, какой файл конфигурации вы хотите открыть. Если вы работаете в Windows, вы увидите два пути: один в вашем личном пользовательском каталоге и второй в месте установки SSH. Вы должны использовать файл в своем пользовательском каталоге при настройке сервера.

Выберите файл, и ваш редактор откроет файл config. Добавьте в него следующий код, чтобы определить соединение с вашим сервером (замените выделенные разделы данными о вашем сервере):

Host my_remote_server

HostName your_server_ip_or_hostname

User 8host

IdentityFile /location/of/your/private/key

Вот как работает этот файл:

  • Host: имя вашего хоста. Это поле позволяет использовать короткое имя или аббревиатуру вместо полного IP-адреса или имени хоста при подключении к серверу.
  • HostName: фактическое имя хоста сервера, это либо IP-адрес, либо полный домен.
  • User: пользователь, с помощью которого вы создадите подключение.
  • IdentityFile: путь к вашему закрытому ключу SSH. В системах Mac и Linux он хранится в домашнем каталоге, в скрытом каталоге .ssh. Обычно он называется id_rsa. Если вы работаете в Windows, вы должны были указать место для сохранения этого файла, когда создавали его с помощью putty-gen.

Укажите соответствующие значения в файле и сохраните его.

Visual Studio Code настроен и готов подключиться к вашему серверу. Нажмите зеленую кнопку Open a remote window в нижнем левом углу и выберите Remote-SSH: Connect to Host…

После этого в выпадающем меню появятся все доступные и настроенные серверы. Выберите из этого списка сервер, к которому вы хотите подключиться.

Если вы впервые подключаетесь к этому серверу со своего компьютера, скорее всего, появится диалоговое окно и предложит вам проверить отпечаток ключа SSH.

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

ssh-keygen -l -f /etc/ssh/ssh_host_key.pub

Если этот отпечаток совпадает с тем, который вы видите в диалоговом окне Visual Studio Code, то вы подключаетесь к правильному серверу. Можно нажать Continue.

При создании нового соединения Visual Studio Code по умолчанию открывает новое окно. Вы увидите окно приветствия. Ваше соединение успешно создано, если вы видите «SSH: your_ip_address_or_hostname» в зеленом поле в нижнем левом углу. Это означает, что Visual Studio Code подключен и взаимодействует с вашим удаленным сервером.

Теперь вы можете запускать команды и код из вашего редактора.

3: Выполнение кода на удаленном сервере

Плагин Remote-SSH настроен, подключение создано.  Давайте попробуем запустить код на удаленной машине. Откройте окно терминала, выбрав Terminal в панели навигации в верхней части интерфейса Visual Studio и кликнув New Terminal. Вы также можете открыть терминал при помощи клавиш CTRL+Shift+`. Этот терминал откроется на вашем удаленном сервере, а не на локальном компьютере.

Когда терминал откроется, введите следующую команду, чтобы запросить IP-адрес и убедиться, что вы подключены к удаленному серверу:

ip addr

Вы увидите следующий вывод в своем терминале:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 16:cb:05:5b:30:f1 brd ff:ff:ff:ff:ff:ff
inet your_server_ip brd your_broadcast_address scope global eth0
valid_lft forever preferred_lft forever
...

Чтобы убедиться, что вы можете запускать код удаленно, создайте новый файл Python по имени hello.py в вашем редакторе. После подключения к удаленному серверу все файлы, созданные с помощью Visual Studio Code, будут сохранены на удаленном сервере (не на вашем локальном компьютере).

Добавьте следующие строки в файл:

print("Hello 8host!")

Чтобы запустить эту программу на своем сервере, откройте терминал в Visual Studio Code из меню или с помощью клавиш CTRL+Shift+`. Этот сеанс терминала подключен к вашему удаленному серверу. Введите следующую команду, чтобы запустить вашу программу hello.py:

python3 hello.py

Вывод вашей программы будет отображаться в терминале.

Вы также можете запустить файл из контекстного меню Debug, выбрав при этом опцию Run without Debugging.

Примечание: Если вы используете какие-либо расширения для разработки в Visual Studio Code (например, расширение Python), вам придется переустановить эти расширения на своем удаленном сервере с помощью Extension Marketplace. Если вы ранее установили эти плагины в Visual Studio Code, при повторном поиске их в Marketplace появится сообщение «Install on SSH: hostname». Всегда обращайте внимание на то, в каком контексте разработки вы находитесь, потому что именно сюда Visual Studio Code установит ваши плагины и создаст файлы. Если вы попытаетесь запустить код без предустановленных плагинов, в правом нижнем углу экрана появится диалоговое окно с сообщением об ошибке, которое предложит установить плагины на удаленном сервере. После их установки, вероятно, потребуется перезагрузить Visual Studio Code. После перезагрузки он продолжит работу с удаленным сервером без необходимости повторного подключения вручную.

Заключение

Теперь ваша установка Visual Studio Code настроена для разработки на удаленном сервере по SSH. Удаленное выполнение кода с помощью IDE дает много преимуществ, включая возможность быстро протестировать код в разных операционных системах и с различными характеристиками оборудования. Если у вас есть подключение к Интернету, вы можете подключаться к своему серверу и работать над своим кодом с любого компьютера. Также это позволяет разрабатывать приложения для среды Linux, даже если в качестве основной операционной системы вы используете Windows.

Tags: , , , , , ,