Visual Studio Code – это очень функциональный и универсальный текстовый редактор, который могут использовать не только разработчкики, но и системные администраторы. Вы можете использовать VS Code для редактирования скриптов (см. как использовать VSCode для разработки скриптов PowerShell), конфигурационных файлов или даже командной оболочки консоли. С помощью расширения Remote SSH вы можете подключаться к удаленным компьютерам по SSH и редактировать любые файлы, скрипты, конфиги или выполнять команды на удаленных Windows или Linux хостах прямо из VS Code, установленного на вашем компьютере.
В этой статье мы покажем, как настроить SSH клиент в Visual Studio Code для подключения к удаленным хостам.
Запустите VS Code, перейдите в раздел Extensions (
Ctrl + Shift + X
), найдите и установите расширение Remote SSH.
При этом автоматически устанавливаются расширения Remote SSH: Editing Configuration Files и Remote Explorer (вкладка Extension Pack).
Выберите Remote Explorer в левой панели VS Code и создайте новое SSH подключение. Мастер подключения запросит:
- строку SSH подключения:
[email protected]
- путь к конфигурационному файлу, в котором будут храниться настройки этого подключения (по умолчанию
C:\Users\%username%\.ssh\config
.
CTRL + SHIFT + P
и выбрать Remote-SSH: Connect to Host)Теперь вы можете подключиться к удаленному хосту по SSH. Выберите нужный хост в списке и выберите Connect.
При первом подключении VSCode запрашивает у вас тип платформы на удаленном SSH хосте (Linux/Windows/MacOS) и пароль для подключения:
После подключение к удаленном SSH хосту вы можете прямо из VSCoder редактировать любые текстовые файлы и выполнять команды в Shell как будто вы подключились с помощью ssh-клиента (чтобы отобразить окно терминала, выберите Terminal -> New Terminal),
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 Save as Root in Remote — SSH. После установки этого расширения вы сможете сохранить файл в режим sudo с помощью команды «Save as Root».
В Remote SSH вы можете использовать как парольную аутентификацию, так и аутентификацию по SSH ключам.
Попробуем настроить аутентификацию по SSH ключам на удаленном хосте Windows:
- Сгенерируйте на клиенте пару SSH ключей:
ssh-keygen -t ed25519
В этом примере используется Windows 10 со встроенным клиентом OpenSSH. - Скопируйте файл открытого ключа
C:\Users\%username%\.ssh\id_ed25519
в файлC:\Users\user1\.ssh\authorized_keys
на удаленном хосте (где user1 – имя пользователя, под которым вы будете подключаться); - Проверьте, что в конфигурационном файле OpenSSH сервера в Windows включена опция:
PubkeyAuthentication yes
- Теперь откройте файл 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"

Теперь при подключении к SSH хосту будет использоваться аутентификацию по ключу (без пароля).
Вы можете использовать директиву LocalForward для организации SSH туннелей и проброса портов. Можно использовать директивы
ForwardAgent
и
ProxyJump
:
Host PublicJumpServer1 HostName pub.winitpro.ru User user1 ForwardAgent yes Host PrivateServer1 HostName private.contoso.com User user1 ProxyJump PublicJumpServer1
Вредная штука, так как ставит на сервер бэк вскод. И если в домашней лаборотории это еще нормально, то на проде такой бонус ну вот вообще никуда не упёрся.
разве она что-то ставит? коннект по ssh..
Есть open source аналог vscodium
https://github.com/VSCodium/vscodium
Связать бы еще с putty agent
Открывать ssh до боевого сервера из обычной сети разработчика не является безопасным и неприменимо в промышленных масштабах, только для отладки на тестовых серверах
как в vscode сделать игнорирование изменение отпечатка SSH ключа?, сервера пересоздаются, и не хочется руками удалять привязки отпечатков ключей к хосту.
Добавить в конфиг файл для хоста строку
StrictHostKeyChecking no
мне проще через sshfs примонтировать на свой АРМ необходимый каталог и отредактировать нужные файлы , чем с этим всем разбираться , либо вообще делать через ARM -> Git ( GitLab ) -> srv , заодно и видно будет кто когда и зачем правил конфиги и если что откатить можно будет
и кстати , vs code оставляет после этого ошметки свои на удаленной машине , на сколько помню в виде каталогов /.vscode