Менеджер SSH подключений с интеграцией SFTP, поддержкой туннелей, сессий и SSH Gateway.
- 📁 Организация серверов - группировка по папкам с цветовой маркировкой
- ⭐ Избранное - быстрый доступ к часто используемым серверам
- 📚 Сессии - группировка серверов для одновременного подключения
- 🔌 Быстрое подключение - SSH терминал в один клик
- 📤 SFTP браузер - передача файлов
- 🚇 SSH туннели - создание локальных туннелей с автозапуском
- 🌉 SSH Gateway - подключение через Bastion/Jump Host
- 🔍 Поиск серверов - быстрый поиск по имени, хосту, пользователю
- 📋 Отдельный конфиг -
~/.vssh/vssh-config.json - 🔐 Шифрование - AES-256-CBC для паролей
- 📥 Импорт/Экспорт - перенос конфигурации
Миграция: При обновлении на версию 2.0.0+:
- Старые пароли не расшифруются (старый ключ)
- Удалите
~/.vssh/vssh-config.jsonили пересоздайте серверы - Введите новый мастер-пароль
- Создайте подключения заново
- macOS:
brew install sshpass - Linux:
apt install sshpass
- Ничего дополнительно не требуется
# Из VSIX файла
code --install-extension vssh-1.0.1.vsix --force
# После установки перезапустите VS Code (Cmd+Q / полностью закройте и откройте)# Из VSIX файла
cursor --install-extension vssh-1.0.1.vsix --force- Скачайте
.vsixфайл со страницы Releases - Установите командой выше или через GUI
- Откройте VS Code или Cursor
- Нажмите на иконку vSSH Explorer в левой панели (activity bar)
- Или нажмите
Ctrl+Shift+P(Cmd+Shift+P на Mac) → введитеvSSH
Если вы разрабатываете плагин:
# Терминал 1: режим компиляции с наблюдением
npm run watch
# Терминал 2: запустите VS Code для отладки
code .
# Затем нажмите F5 для запуска в режиме отладкиОткроется новое окно VS Code с установленным плагином.
- Нажмите на иконку vSSH Explorer в activity bar (слева)
- Или
Ctrl+Shift+P→vSSH: SSH Servers
- Нажмите кнопку + Add Server в панели
- Заполните параметры:
- Имя сервера
- Host (IP или домен)
- Порт (по умолчанию 22)
- Имя пользователя
- Метод аутентификации (ключ или пароль)
- Настройте Gateway (опционально):
- Выберите "Настроить Gateway"
- Введите Gateway Host, Port, Username
- Выберите метод аутентификации Gateway
- Нажмите Enter
- Кликните на сервер → иконка Connect (📎)
- Откроется терминал с SSH сессией
- Правый клик на сервере → Open SFTP Panel
- Откроется панель с файлами сервера
- Используйте кнопки для загрузки/скачивания файлов
- Правый клик на сервере → Create Tunnel
- Введите:
localPort:remoteHost:remotePort(например:8080:localhost:80) - Выберите автозапуск (опционально)
- Панель SSH Tunnels отображает все сохранённые туннели
- 🚀 - туннели с автозапуском
▶️ - запустить туннель- ⏹️ - остановить туннель
- 🗑️ - удалить туннель
- Close All - закрыть все активные туннели
- Туннели с 🚀 запускаются автоматически при старте VS Code
- Остальные можно запустить вручную из панели туннелей
Подключение к внутренним серверам через промежуточный хост:
- При создании сервера выберите "Настроить Gateway"
- Заполните параметры Gateway:
- Host - IP или домен bastion (например:
10.0.0.1) - Port - порт bastion (обычно 22)
- Username - пользователь на bastion
- Auth Method - ключ или пароль
- Password/Key - аутентификация для bastion
- Host - IP или домен bastion (например:
Пример сценария:
Ваш компьютер → Bastion (10.0.0.1) → Внутренний сервер (192.168.1.100)
- Нажмите + Add Folder в заголовке панели
- Или правый клик на папке → Add Folder (создаст подпапку)
- При создании выберите цвет (синий, зелёный, жёлтый, оранжевый, красный, фиолетовый)
- Правый клик на папке → Edit Folder → изменить цвет
- Drag-and-drop серверов и папок между папками
- Перетащите в корень для извлечения из папки
- Правый клик на папке → Delete Folder
⚠️ Удаляет все серверы и подпапки внутри
- Нажмите кнопку 🔍 Search Servers в панели
- Введите запрос (имя, хост или пользователь)
- Выберите сервер из списка
- Сервер подключится
- Найдите сервер в SSH Servers
- Нажмите ⭐ Add to Favorites (звезда справа от сервера)
- Сервер появится в панели Favorites
- Кликните на сервер в Favorites
- Или нажмите 📡 Open
- Сервер подключится
- Нажмите 🗑️ Remove на сервере
- Или правый клик → Remove from Favorites
- Нажмите 💾 Create Session в заголовке SSH Servers или Sessions
- Введите имя сессии (например: "Production Servers")
- Найдите сервер в SSH Servers
- Нажмите 💾 Save to Session
- Выберите сессию из списка
- Откройте панель Sessions
- Найдите папку сессии
- Нажмите
▶️ Launch Session - Все серверы сессии подключатся одновременно
- 🗑️ Remove на сервере в сессии — удалить сервер из сессии
- 🗑️ Delete Session на папке — удалить всю сессию
Sessions:
📁 Production (3 серверов) [▶️]
├─ 🖥 prod-web-01 [🗑️]
├─ 🖥 prod-web-02 [🗑️]
└─ 🖥 prod-db-01 [🗑️]
~/.vssh/vssh-config.json
{
"servers": [
{
"name": "production",
"host": "192.168.1.100",
"port": 22,
"username": "admin",
"authMethod": "privateKey",
"privateKeyPath": "/Users/user/.ssh/id_rsa",
"folder": "a1b2c3d4e5f6",
"gateway": {
"host": "10.0.0.1",
"port": 22,
"username": "bastion",
"authMethod": "password",
"password": "AES256:encrypted..."
}
}
],
"folders": [
{
"id": "a1b2c3d4e5f6",
"name": "Production",
"color": "#e05555",
"parentFolder": null
}
],
"tunnels": [
{
"id": "tunnel123",
"serverName": "production",
"serverId": "production",
"localPort": 8080,
"remoteHost": "localhost",
"remotePort": 80,
"isActive": false,
"autoStart": true
}
],
"favorites": [
{
"id": "fav123",
"name": "production",
"serverName": "production",
"serverId": "production",
"savedAt": "2026-02-23T..."
}
],
"sessions": [
{
"id": "session123",
"name": "Production Servers",
"servers": ["prod-web-01", "prod-web-02", "prod-db-01"],
"savedAt": "2026-02-23T..."
}
]
}Мастер-пароль:
- При первом запуске запрашивается мастер-пароль
- Пароль не сохраняется в системе
- Запрашивается при каждом запуске VS Code
- Все пароли серверов шифруются этим мастер-паролем
Алгоритм:
- AES-256-CBC
Переносимость:
- Конфигурацию можно переносить между компьютерами
- На новом компьютере введите тот же мастер-пароль
- Все пароли расшифруются
Смена мастер-пароля:
Ctrl+Shift+P → vSSH: Change Master Password
- Введите старый пароль (проверка)
- Введите новый пароль
- Все пароли перешифруются новым ключом
✅ Преимущества:
- Пароли не хранятся в открытом виде
- Мастер-пароль не сохраняется в системе
- Переносимость между компьютерами
- Запомните мастер-пароль
- При утере мастер-пароля пароли не восстановить
- Используйте надёжный мастер-пароль
# Установка зависимостей
npm install
# Компиляция
npm run compile
# Режим наблюдения
npm run watch
# Сборка VSIX
npm run package
# Установка локальной версии
code --install-extension vssh-1.0.1.vsix --forcevssh/
├── src/
│ ├── extension.ts # Точка входа, регистрация команд
│ ├── serverProvider.ts # Дерево серверов/папок, drag-and-drop
│ ├── sftpProvider.ts # SFTP дерево с upload/download/edit
│ ├── sshConfig.ts # Менеджер конфигурации с шифрованием
│ ├── sshConnection.ts # SSH подключение через терминал
│ ├── tunnelManager.ts # SSH туннели с автозапуском
│ ├── tunnelProvider.ts # Провайдер дерева туннелей
│ ├── favoriteManager.ts # Менеджер избранного
│ ├── favoriteProvider.ts # Провайдер дерева избранного
│ ├── sessionManager.ts # Менеджер сессий
│ ├── sessionProvider.ts # Провайдер дерева сессий
│ └── types.ts # TypeScript интерфейсы
├── images/
│ └── icon.png # Иконка расширения
├── package.json # Manifest расширения
├── tsconfig.json # TypeScript конфигурация
└── README.md # Документация
Симптом: При подключении с паролем появляется предупреждение
Решение:
# macOS
brew install sshpass
# Linux (Debian/Ubuntu)
sudo apt install sshpass
# Linux (RHEL/CentOS)
sudo yum install sshpassСимптом: Ошибка "Порт уже используется"
Решение:
- Проверьте занятость порта:
lsof -i :8080 - Освободите порт или используйте другой
- Закройте старые туннели: Close All Tunnels
Симптом: Папки созданы, но не видны в дереве
Решение:
- Перезагрузите VS Code полностью (Cmd+Q / Quit)
- Проверьте консоль разработчика на ошибки
MIT