Что проверить, если VS Code Remote-SSH после обновления долго устанавливает Server на хосте без интернета: SSH, журнал, Local Server Download и граница расширений.
Сначала отделите SSH от установки VS Code Server
Закройте окно повторных подключений и проверьте обычный вход штатным SSH-клиентом с тем же сохранённым хостом. Не добавляйте пароль или приватный ключ прямо в команду и не публикуйте имя пользователя, адрес или fingerprint. Если SSH не устанавливается, параметр загрузки VS Code Server не решит проблему: сначала нужно восстановить разрешённый доступ вместе с администратором. Если терминальный вход проходит, откройте в VS Code Output → Remote - SSH, запустите одну новую попытку и запишите последний этап без копирования всего журнала. Официальная инструкция рекомендует сначала проверить обычное SSH-соединение и использует Remote - SSH output channel для подробного статуса. Граница этого шага проста: транспорт уже работает, а задержка начинается позже — при проверке или установке серверного компонента.
Определите, где клиент пытается скачать сервер
В журнале ищите не содержимое команд, а последовательность событий: определена платформа удалённого хоста, проверена существующая версия Server, началась загрузка на remote или началась локальная загрузка и передача. Не делайте вывод по одному слову timeout: оно может относиться к SSH, HTTPS-загрузке, копированию или запуску процесса. Официальный FAQ уточняет, что по умолчанию Remote-SSH сначала пытается скачать VS Code Server на удалённой машине, а после неудачи может перейти к локальной загрузке и передаче. Поэтому длинное ожидание на хосте без исходящего HTTPS не доказывает поломку SSH. Зафиксируйте только этап и длительность одной попытки. Не увеличивайте таймаут до бесконечности: это скрывает место задержки и затягивает каждое последующее обновление.
Переключите Local Server Download на Always
Откройте Settings на локальном компьютере, найдите Remote.SSH: Local Server Download и выберите Always. Перезапустите одно подключение и сравните журнал: локальная машина должна получить подходящий компонент, после чего передать его удалённому хосту по установленному SSH-каналу. Этот переключатель обратим и документирован VS Code; он не требует ручного поиска архива или установки случайной сборки. Для загрузки локальному VS Code нужен исходящий HTTPS к update.code.visualstudio.com и vscode.download.prss.microsoft.com. Не добавляйте эти адреса в правила удалённого firewall, если политика запрещает интернет на сервере: смысл режима Always как раз в том, чтобы использовать доступ клиентской машины. Не отключайте TLS-проверку и не применяйте curl с флагом, игнорирующим сертификаты.
Отделите установку Server от установки расширений
Успешный запуск VS Code Server ещё не означает, что каждое расширение сможет установиться и работать без сети. Официальный FAQ разделяет endpoints серверного компонента и Marketplace: для панели расширений могут понадобиться marketplace.visualstudio.com и CDN галереи, а некоторые расширения скачивают собственные зависимости с отдельных доменов. Проверьте сначала пустое удалённое окно без установки новых расширений. Если оно открывается, а проблема появляется только при добавлении конкретного расширения, это уже другая граница. VS Code позволяет установить проверенный пакет через Extensions: Install from VSIX, но берите VSIX только из официального или одобренного организацией источника и не переносите пакет с неизвестного сайта. Не меняйте сразу Local Server Download, proxy и список расширений: один эксперимент должен проверять одну гипотезу.
Не расширяйте сетевой доступ без необходимости
Remote Development использует существующий защищённый транспорт, а серверный процесс работает от имени пользователя SSH. Для сценария локальной загрузки не нужно публиковать новый порт в интернете, запускать сторонний туннель или переводить firewall в разрешающий режим. Сохраните проверку host key и корпоративные политики proxy. Если локальная загрузка проходит, но передача срывается, попросите администратора проверить разрешённые операции SSH/SFTP или ограничение дискового пространства, не отправляя ему приватный ключ. Если передача завершена, но сервер не стартует, запишите поддерживаемую архитектуру и версию ОС из официальных системных требований. Не применяйте ручное удаление каталога сервера как первый шаг: оно уничтожает полезную границу между уже установленной и новой версией и заставляет повторять загрузку.
Соберите минимальный пакет для эскалации
Укажите версии локального VS Code и Remote-SSH, локальную ОС, семейство удалённой ОС и архитектуру без hostname. Добавьте четыре результата: обычный SSH работает или нет; последний этап Remote - SSH; значение Local Server Download; результат повторной попытки. Если Server открылся, но расширение не установилось, укажите только идентификатор расширения и этап, не содержимое репозитория. Удалите из фрагмента журнала пользователя, IP, доменное имя, пути, fingerprint, proxy URL и команды авторизации. Критерий остановки — следующий шаг требует отключить проверку ключа хоста, раскрыть приватный ключ, открыть новый входящий порт, обойти TLS или менять сетевую политику без администратора. Свежий issue подтверждает наличие вопроса, но не массовость: полезный отчёт должен показывать конкретную границу «SSH → загрузка → передача → запуск».
Материал подготовлен редакцией VOne с применением ИИ для матрицы этапов Remote-SSH и критериев остановки; загрузка VS Code Server, локальная передача, endpoints и граница расширений сверены по официальной документации VS Code, а GitHub issue использован только как обезличенный свежий сигнал.
Источники и проверка
- Visual Studio Code — Remote Development using SSH проверено 2026-08-14
- Visual Studio Code — Remote Development FAQ проверено 2026-08-14
- Visual Studio Code — Network Connections проверено 2026-08-14
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.