Настраиваем Visual Studio Code для удаленной работы через SSH

  • Автор:

VSCode-Remote-SSH-000.pngСегодня все чаще и чаще для конфигурационных файлов используются продвинутые текстовые форматы, такие как JSON или XML, имеющие строгий синтаксис и структуру. Их применение облегчает программную обработку данных, но при этом они все еще остаются легко читаемыми человеком. Однако работа с ними в привычных консольных редакторах имеет ряд неудобств, в частности связанных с соблюдением синтаксиса и формата разметки. Поэтому гораздо удобнее использовать для этого специальные среды разработки, например, VS Code, тем более что он прекрасно умеет работать через SSH.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

Для того, чтобы научить VS Code удаленной работе по SSH нам понадобится два расширения: Remote - SSH и Save as Root in Remote - SSH, которые можно установить прямо внутри среды разработки.

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

В качестве удаленных систем поддерживаются:

  • Debian 8+, Ubuntu 16.04+, CentOS / RHEL 7+.
  • Windows 10 / Server 2016/2019 (1803+)
  • macOS 10.14+ (Mojave)

Для работы серверной компоненты потребуется минимум 1 ГБ ОЗУ, но рекомендуется не менее 2 ГБ и двуядерный процессор.

После того, как вы установили все расширения нажмите на значок удаленного подключения в нижнем левом углу и затем выберите во всплывающем меню Connect to Host... Remote-SSH.

VSCode-Remote-SSH-001.png

Так как настроенных узлов у нас нет, то выбираем Add New SSH Host и вводим строку подключения в формате:

user@server

В качестве имени сервера можно использовать IP или FQDN, например:

root@192.168.9.2
andrey@host104.it-31.ru

VSCode-Remote-SSH-002.png

Затем вам будет предложено сохранить данные подключения в одно из расположений, стандартно используется

%USERPROFILE%\.ssh\config

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

VSCode-Remote-SSH-004.png

Файл откроется прямо здесь, в VS Code и будет состоять из блоков формата:

Host 192.168.9.2
HostName 192.168.9.2
User root

Находим нужный блок и добавляем к нему строку в котором указываем путь к закрытому ключу:

IdentityFile "C:\Users\andrey\.ssh\andrey.key"

Теперь при выборе удаленного подключения через Remote-SSH у нас будет выпадать список уже настроенных соединений:

VSCode-Remote-SSH-003.pngДалее выбираем нужный узел, при первом подключении придется немного подождать пока на удаленный компьютер будет скачан и установлен VS Code Server. Он устанавливается в контексте пользователя и если с сервером будут работать сразу несколько человек, то компонента будет установлена для каждого из них.

При первом подключении сразу перейдите в раздел расширений и убедитесь, что нужные из них были установлены на удаленном узле, если это не так, то установите их. В нашем случае это относится к Save as Root in Remote - SSH если вы подключаетесь пользователем отличным от суперпользователя.

Затем выберите, чтобы вы хотели сделать. Можно создать или открыть файл, либо открыть директорию. Если вы хотите редактировать конфигурационные файлы, то удобнее всего сделать последнее, нажмите Open Folder и во всплывающем окне выберите /etc.

VSCode-Remote-SSH-005.pngТеперь слева у нас проводник со всем содержимым директории /etc и мы можем выбрать и открыть на редактирование любой файл. После чего внизу справа правильно указываем его формат и работаем, наслаждаясь всеми преимуществами среды разработки, например, она сразу укажет нам на пропущенную запятую при работе с JSON.

VSCode-Remote-SSH-006.pngСогласитесь, что это гораздо удобнее, чем редактировать в консольном редакторе и считать запятые. Таким образом можно быстро и эффективно привести конфигурационные файлы к нужному виду с минимумом синтаксических ошибок с учетом всей вложенной структуры, какой бы сложной она не была. Тем более что в магазине VS Code есть готовые расширения для работы с конфигурациями практически всех популярных продуктов.

VSCode-Remote-SSH-007.pngВсе время до этого мы подразумевали что работаем с правами суперпользователя, и проблема сохранения изменений перед нами не стоит, но если мы подключаемся обычным пользователем, что наиболее предпочтительно, то при попытке сохранения получим ошибку:

VSCode-Remote-SSH-008.pngВ этом случае нам поможет расширение Save as Root in Remote - SSH, обязательным условием его применения является наличие в системе утилиты sudo, а также пользователь должен иметь возможность повышать собственные права до суперпользователя.

Использовать расширение просто, для сохранения файла просто нажмите F1 и во всплывающем окне начните набирать saveas, затем в выпадающем списке выберите Save as Root и ваш файл будет успешно сохранен.

VSCode-Remote-SSH-009.pngКак видим использовать VS Code для удаленной работы с файлами через SSH совсем не сложно, в тоже время гораздо более удобно чем обычные консольные редакторы, а дополнительные расширения могут существенно упросить работу со сложными конфигурациями добавляя удобные инструменты, такие как подсветка синтаксиса, контроль ошибок или автодополнение.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments