Поиск по сайту:

Настройка удаленных подключений SSH в коде Visual Studio


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

Вот как настроить SSH-клиент Visual Studio Code для подключения к удаленным хостам.

Запустите VS Code и перейдите в раздел Расширения (

Ctrl + Shift + X 

). Теперь найдите и установите расширение Remote SSH.

При этом автоматически устанавливаются следующие надстройки удаленного SSH: Редактирование файлов конфигурации и Remote Explorer (вкладка «Пакет расширений»).

Выберите Remote Explorer на левой панели VSCode, чтобы создать новое SSH-соединение. Мастер подключения предложит ввести:

  • Строка подключения SSH:

    [email 
  • путь к файлу конфигурации, содержащему настройки для данного подключения (по умолчанию это

    C:\Users\%username%\.ssh\config

    ).

Вы также можете создать новое соединение, нажав

CTRL + SHIFT + P

и выберите Remote-SSH: подключиться к хосту.

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

При первом подключении VSCode запросит тип платформы на удаленном хосте SSH (Linux/Windows/macOS) и пароль для подключения:

После подключения к удаленному хосту SSH вы можете редактировать любые текстовые файлы непосредственно из редактора VSCode и выполнять команды оболочки, как если бы вы были подключены через SSH-клиент (нажмите «Терминал» -> «Новый терминал», чтобы открыть приглашение консоли).

Если вы попытаетесь сохранить в VSCode файл, который не может быть отредактирован пользователем без полномочий root (без

sudo

), вы получите следующую ошибку::

Failed to save 'sshd_config': Unable to write file 'vscode-remote://ssh-remote+192.168.79.128/etc/ssh/sshd_config' (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/etc/ssh/sshd_config').

Одним из решений этой проблемы является использование расширения VSCode Сохранить как root в Remote - SSH. После установки этого расширения вы можете сохранить файл в режиме sudo с помощью команды Сохранить как root.

Аутентификация на основе пароля и ключа SSH поддерживается в Remote SSH.

Давайте попробуем настроить аутентификацию на основе ключей SSH на удаленном хосте Windows:

  1. Создайте пару ключей SSH на клиенте:

    ssh-keygen -t ed25519

    В этом примере используется Windows 10 со встроенным SSH-клиентом.

  2. Скопируйте файл открытого ключа

    C:\Users\%username%\.ssh\id_ed25519

    в файл

    C:\Users\user1\.ssh\authorized_keys

    на вашем удаленном хосте (здесь user1 — это имя пользователя, к которому вы будете подключаться);

  3. Убедитесь, что в файле конфигурации сервера OpenSSH в Windows включена следующая опция:

    PubkeyAuthentication yes
  4. Теперь откройте файл C.

    :\Users\%username%\.ssh\config

    который содержит настройки подключения VSCode для хостов SSH. Найдите хост и добавьте параметр IdentityFile с путем к файлу вашего закрытого ключа:

Host 192.168.31.4
  HostName 192.168.31.4
  User root
  IdentityFile "C:\Users\user1\.ssh\id_ed25519"

Быстрый способ открыть файл конфигурации — нажать

F1

-> Remote-SSH: открыть файл конфигурации SSH.

Теперь соединение с хостом SSH будет осуществляться с аутентификацией на основе ключа (пароль не требуется).

Вы можете использовать директиву LocalForward для настройки SSH-туннелей и переадресации портов. Или вы можете использовать

ForwardAgent

и

ProxyJump

вместо этого директивы:

Host PublicJumpServer1
  HostName public.active-directory.ru
  User user1
  ForwardAgent yes

Host PrivateServer1
  HostName private.contoso.com
  User user1
  ProxyJump PublicJumpServer1

Вы также можете подключиться к MS SQL Server и вести разработку на нем с помощью VS Code.

Статьи по данной тематике