Подключите редактор VSCode к удаленному серверу с помощью SSH-ключа WSL.

Вопрос или проблема

Я использую VSCode с WSL на Windows 10. Я настроил SSH-ключи с моим удаленным сервером, и они хранятся для этого пользователя WSL ~/.ssh/ полный путь из Windows будет выглядеть как \\wsl$\Ubuntu\home\zac\.ssh

Это соединение отлично работает для подключения через терминал WSL ssh [email protected]

Я надеюсь, что также смогу подключить редакторскую часть VSCode к этому удаленному серверу. Я установил расширение Remote – SSH и все остальные связанные инструменты удаленной разработки. После поиска в Google я попробовал это решение, для своего пользователя Windows я создал файл под названием ssh.bat, который содержит следующее:

C:\Windows\system32\wsl.exe ssh %*

Затем из файла Remote SSH:Config я добавил свой путь к этому файлу

C:\Users\Zac\bin\ssh.bat

Когда я пытаюсь подключиться к хосту, это записывается в тот .bat файл

Host 82.1xx.xxx.xx
  HostName 82.1xx.xxx.xx
  User root

И появляется длинный вывод ошибки, вот часть вывода:

[13:30:34.121] Указанный путь C:\Users\zac\bin\ssh.bat не является действительным двоичным файлом SSH
[13:30:34.121] Проверка ssh с помощью "ssh -V"
[13:30:34.157] > OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

[13:30:34.162] Использование SSH конфигурационного файла "C:\Users\Zac\bin\ssh.bat"
[13:30:34.162] Выполнение скрипта с командой подключения: ssh -T -D 60600 -F "C:\Users\Zac\bin\ssh.bat" "82.1xx.xxx.xx" bash
[13:30:34.165] Путь к терминальному шеллу: C:\WINDOWS\System32\cmd.exe
[13:30:34.421] > ]0;C:\WINDOWS\System32\cmd.exe
[13:30:34.421] Получен некоторый вывод, очистка таймаута соединения
[13:30:34.439] > C:\\Users\\Zac\\bin\\ssh.bat: строка 1: Плохая конфигурация параметра: c:\\windows\\sys
> tem32\\wsl.exe
> C:\\Users\\Zac\\bin\\ssh.bat: завершение, 1 плохая конфигурация параметра
> Процесс попытался записать в несуществующий канал.
> 
[13:30:35.710] Команда терминала "install" выполнена
[13:30:35.711] Установочный терминал завершил работу с выводом: C:\\Users\\Zac\\bin\\ssh.bat: завершение, 1 плохая конфигурация параметра
[13:30:35.711] Получен вывод установки: C:\\Users\\Zac\\bin\\ssh.bat: завершение, 1 плохая конфигурация параметра
[13:30:35.712] Не удалось разобрать удаленный порт из вывода сервера

Надеюсь, что это решение сработает, или я буду рад, если есть способ синхронизировать окружения или даже просто скопировать ключ для обоих? Я не уверен, как это сработает, и представляю, что возникнет множество проблем с разрешениями.

Ответ или решение

Подключение редактора VSCode к удаленному серверу с использованием SSH-ключа WSL

Введение

Работа с удаленными серверами в VSCode при помощи WSL (Windows Subsystem for Linux) предоставляет множество возможностей для разработчиков. Однако, для корректного подключения, необходимо правильно настроить SSH-ключи и конфигурацию VSCode. В данной статье мы рассмотрим шаги для подключения редактора VSCode к удаленному серверу с использованием SSH-ключа, хранящегося в вашем WSL-окружении.

Шаг 1: Проверка SSH-настроек

Перед тем как приступить к настройке VSCode, убедитесь, что вы можете успешно подключиться к удаленному серверу с помощью SSH из терминала WSL. Если команда ssh user@remote_host работает без ошибок, переходите к следующему шагу.

Шаг 2: Установка расширения Remote – SSH в VSCode

Если вы еще не установили расширение Remote – SSH, выполните следующие шаги:

  1. Откройте VSCode.
  2. Перейдите в раздел расширений (Extensions).
  3. Найдите и установите "Remote – SSH".

Шаг 3: Создание скрипта для SSH через WSL

Вы уже создали файл ssh.bat, который содержит команду для запуска SSH через WSL. Убедитесь, что ваш файл ssh.bat выглядит следующим образом:

@echo off
C:\Windows\system32\wsl.exe ssh %*

Этот скрипт позволяет использовать SSH-команды, выполняя их через WSL.

Шаг 4: Настройка пути к скрипту в VSCode

  1. Откройте командную палитру VSCode (Ctrl + Shift + P).
  2. Введите Remote-SSH: Open Configuration File и выберите файл конфигурации SSH.
  3. Добавьте строку в формат:
    Host your_remote_host
     HostName 82.1xx.xxx.xx
     User root
     IdentityFile ~/.ssh/id_rsa

    Убедитесь, что IdentityFile указывает на ваш SSH-ключ. В случае WSL это путь в контексте Linux, например: ~/.ssh/id_rsa.

Шаг 5: Проверка настроек SSH

После редактирования конфигурационного файла, убедитесь, что он правильно настроен:

  1. В терминале WSL выполните команду ssh -v user@remote_host для проверки соединения и отладки.
  2. Убедитесь, что вывод команды не содержит ошибок. Обратите внимание на возможные проблемы с путями и разрешениями.

Шаг 6: Подключение к удаленному серверу

Теперь вы готовы подключиться к вашему удаленному серверу через VSCode:

  1. Откройте командную палитру (Ctrl + Shift + P).
  2. Введите Remote-SSH: Connect to Host и выберите ваш удаленный хост из списка.
  3. Если все сделано правильно, VSCode должен подключиться к удаленному серверу и открыть окно терминала.

Важно учесть:

  • Если вы столкнулись с ошибками, связанными с разрешениями, убедитесь, что файлыSSH-ключа и конфигурации имеют правильные разрешения. Ключи должны быть доступны только пользователю (например, chmod 600 ~/.ssh/id_rsa).
  • Убедитесь, что функция WSL полностью настроена и работает, иначе интеграция может привести к ошибкам.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...