Remote - SSH — расширение для редактора исходного кода Visual Studio Code, обеспечивающее взаимодействие локального интерфейса редактора с удалёнными файловыми системами через протокол SSH. Расширение позволяет открывать папки и проекты, расположенные на удалённых серверах, в привычной рабочей среде редактора, при этом выполняя часть операций на стороне сервера и сохраняя визуальную оболочку и инструменты VS Code у пользователя. Оно предназначено для упрощения разработки на удалённых машинах, облачных экземплярах или в контейнерах без необходимости ручной синхронизации файлов.
Развитие и распространение таких средств связано с ростом облачных вычислений и потребностью в единой интегрированной среде разработки, где код выполняется и тестируется непосредственно в целевой среде. Remote - SSH интегрируется с механикой расширений VS Code, позволяя использовать дебаггер, терминал, управление версиями и другие функции редактора при подключении к удалённой системе. При отсутствии подробных сведений о внутренней реализации в публичных источниках, описание ниже опирается на общедоступные практики и типичные возможности подобных решений.
- Подключение по SSH: установка защищённого соединения к удалённому хосту с использованием ключей или пароля для доступа к файловой системе и среде выполнения.
 - Открытие удалённых папок: возможность открывать и редактировать файлы, находящиеся на сервере, как если бы они были локальными, без предварительной синхронизации.
 - Удалённый терминал: встроенный терминал, выполняющий команды на удалённой машине в контексте открытого проекта.
 - Поддержка расширений: запуск компонентов расширений и серверной части внутри удалённой среды для обеспечения совместимости инструментов редактора.
 - Дебаг и запуск: возможность запускать и отлаживать приложения в удалённой среде, используя средства VS Code и настроенные удалённые интерпретаторы или среды выполнения.
 - Управление несколькими хостами: хранение настроек подключения к разным серверам и переключение между ними в рамках интерфейса редактора.
 - Аутентификация и безопасность: поддержка методов аутентификации SSH, в том числе использования SSH-агентов и приватных ключей, а также опций управления трафиком через защищённые каналы.
 - Интеграция с системами контроля версий: работа с репозиториями и инструментами управления версиями непосредственно на удалённом хосте.
 - Настройка окружения: поддержка пользовательских настроек рабочего пространства и переменных среды, обеспечивающих воспроизводимость разработки на сервере.
 - Оптимизация передачи данных: механизмы, минимизирующие объём передаваемых данных и повышающие отзывчивость интерфейса при медленных соединениях.