Visual Studio Code (VS Code) — мощный редактор, подходящий для разработчиков и системных администраторов. С помощью расширения Remote SSH можно подключаться к удалённым хостам по SSH, редактировать файлы, скрипты, конфигурации и выполнять команды в терминале на Windows или Linux. В этой статье описано, как настроить SSH-подключения в VS Code, включая аутентификацию по паролю и ключам, настройку туннелей и сохранение файлов с правами root.
Установка и настройка Remote SSH
1. Установите расширение Remote SSH:
– Запустите VS Code.
– Перейдите в раздел Расширения (Extensions, Ctrl+Shift+X).
– Найдите и установите Remote — SSH.
– Автоматически установятся Remote SSH: Editing Configuration Files и Remote Explorer.
2. Создайте SSH-подключение:
– Перейдите в Удалённый обозреватель (Remote Explorer) на левой панели.
– Нажмите Добавить новое подключение (Add New SSH Host).
– Введите строку подключения, например (или любую другую):
root@192.168.31.4
– Укажите путь к конфигурационному файлу (по умолчанию: C:\Users\%username%\.ssh\config).
– Альтернативно: нажмите Ctrl+Shift+P, выберите Remote-SSH: Подключиться к хосту (Remote-SSH: Connect to Host).
3. Подключитесь к хосту:
– Выберите хост в списке → Подключиться (Connect).
– При первом подключении укажите тип платформы (Linux, Windows, MacOS) и введите пароль.
4. Работа с файлами и терминалом:
– Открывайте и редактируйте файлы на удалённом хосте.
– Откройте терминал: Терминал → Новый терминал (Terminal → New Terminal).
– Выполняйте команды, как в обычном SSH-клиенте.
Решение проблем с правами доступа
При попытке сохранить файл без прав root (например, /etc/ssh/sshd_config) появляется ошибка:
Failed to save: NoPermissions (FileSystemError): Error: EACCES: permission denied
Решение: Save as Root
1. Установите расширение Save as Root in Remote — SSH:
– В Расширениях найдите и установите Save as Root in Remote — SSH.
2. Сохраните файл с правами root:
– Нажмите Ctrl+Shift+P → выберите Save as Root.
– Введите пароль sudo, если требуется.
Настройка аутентификации по SSH-ключам
Для подключения без ввода пароля настройте аутентификацию по SSH-ключам.
Настройка для Windows-хоста
1. Сгенерируйте пару ключей на локальном компьютере:
ssh-keygen -t ed25519
Ключи сохранятся в C:\Users\%username%\.ssh\id_ed25519 (закрытый) и id_ed25519.pub (открытый).
2. Скопируйте открытый ключ на удалённый хост:
– Скопируйте id_ed25519.pub в C:\Users\user1\.ssh\authorized_keys на удалённом хосте (user1 — имя пользователя).
3. Настройте OpenSSH на удалённом хосте:
– Убедитесь, что в файле C:\ProgramData\ssh\sshd_config включена опция:
PubkeyAuthentication yes
4. Настройте файл конфигурации VS Code:
– Откройте C:\Users\%username%\.ssh\config:
F1 → Remote-SSH: Открыть файл конфигурации SSH (Remote-SSH: Open SSH Configuration File)
– Добавьте:
Host 192.168.31.4
HostName 192.168.31.4
User root
IdentityFile "C:\Users\user1\.ssh\id_ed25519"
5. Проверьте подключение:
– Подключитесь к хосту без ввода пароля.
Настройка для Linux-хоста
1. Сгенерируйте ключи (аналогично):
ssh-keygen -t ed25519
2. Скопируйте открытый ключ:
ssh-copy-id user1@192.168.31.4
3. Проверьте sshd_config на хосте:
sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes
4. Настройте .ssh/config в VS Code (как выше).
Настройка SSH-туннелей и ProxyJump
Для проброса портов или подключения через промежуточный сервер используйте директивы в .ssh/config:
1. Настройте туннель с LocalForward:
Host tunnel
HostName 192.168.31.4
User root
LocalForward 8080 localhost:8080
2. Настройте ProxyJump для подключения через промежуточный сервер:
Host PublicJumpServer1
HostName pub.winitpro.ru
User user1
ForwardAgent yesHost PrivateServer1
HostName private.contoso.com
User user1
ProxyJump PublicJumpServer1
Устранение неполадок
Ошибка EACCES: permission denied:
– Установите расширение Save as Root in Remote — SSH.
– Проверьте права доступа к файлу (chmod 600 ~/.ssh/authorized_keys).
Подключение не удаётся:
– Проверьте правильность IP, имени пользователя и ключа в .ssh/config.
– Убедитесь, что sshd запущен на хосте (systemctl status sshd).
Пароль запрашивается при наличии ключа:
– Проверьте PubkeyAuthentication yes в sshd_config.
– Убедитесь, что authorized_keys имеет права 600.
Настройка SSH-подключений в Visual Studio Code с помощью Remote SSH позволяет удобно работать с удалёнными Windows и Linux хостами. Поддержка аутентификации по паролю и ключам, возможность сохранения файлов с правами root и настройка SSH-туннелей делают VS Code мощным инструментом для администрирования и разработки. Правильная конфигурация обеспечивает безопасность и эффективность удалённой работы.