К обсуждениям

Remote-SSH ждёт интернет на сервере: перенесите загрузку на свой ПК

Редакция VOne Технологии

Что проверить, если 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 использован только как обезличенный свежий сигнал.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.