microsoft / microsoft/vscode-remote-release
Remote-SSH 0.124.0 remote child processes do not reliably inherit lowercase proxy variables
@chrmarti is already working on this.
Since Jul 15, 2026.
- Dominant language
- Dockerfile
- Stars
- 4.2k
- Forks
- 470
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 1
Description
Environment
- VS Code: 1.128.1 (commit 5264f2156cbcd7aea5fd004d29eaa10209155d66, x64)
- Remote-SSH: 0.124.0
- Local OS: Ubuntu 22.04, x64
- Remote OS: Ubuntu 22.04.5 LTS, x64
- Authentication: public key
- Remote proxy: local HTTP/SOCKS mixed port on 127.0.0.1
I searched the existing open issues and found no Remote-SSH issue that matches this proxy-environment regression. I also tested both values of remote.SSH.useLocalServer; plain SSH and the generated SSH command work.
Expected behavior
When the remote login shell exports standard lowercase proxy variables (http_proxy, https_proxy, and all_proxy), the VS Code Server and remote extension child processes should inherit and use them consistently, as they did before the VS Code/Remote-SSH update.
Actual behavior
Immediately after updating to VS Code 1.128.1 / Remote-SSH 0.124.0:
- Plain SSH remained fast and reliable.
- Remote-SSH spent a long time in Opening Remote.
- VS Code Server downloads and remote extension initialization became very slow or timed out.
- Network-dependent remote extensions could not connect to their services.
- The remote proxy process was healthy and its port was listening.
- Adding uppercase variants (HTTP_PROXY, HTTPS_PROXY, ALL_PROXY) before starting a fresh VS Code Server session immediately restored normal Remote-SSH startup and remote extension connectivity.
The remote environment originally contained:
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
The workaround was:
export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897
export ALL_PROXY=socks5://127.0.0.1:7897
export NO_PROXY=127.0.0.1,localhost,::1
The lowercase variables were kept. After closing the old remote window and starting a fresh session, the problem disappeared.
Network isolation and verification
Tests were run directly on the remote host:
OpenAI endpoint, direct: timeout after 7.5 s
OpenAI endpoint, explicit remote proxy: HTTP 401 in 0.79 s
VS Code update endpoint, direct: HTTP 302 in 0.65 s
VS Code update endpoint, explicit remote proxy: HTTP 302 in 1.43 s
HTTP 401 from the unauthenticated OpenAI request is expected and confirms connectivity.
After adding uppercase variables, a new interactive bash with no explicit curl proxy flags produced:
OpenAI endpoint: HTTP 401 in 0.50 s via 127.0.0.1
VS Code endpoint: HTTP 200 in 0.42 s via 127.0.0.1
This isolated the problem from SSH transport, authentication, remote DNS, and proxy availability.
Remote-SSH log excerpt
Sensitive values and tokens are removed:
[16:40:46.108] SSH Resolver called for "ssh-remote+<redacted>", attempt 1
[16:40:46.112] remote.SSH.useLocalServer = true
[16:40:46.112] remote.SSH.useExecServer = false
[16:40:46.148] Using connect timeout of 12 seconds
[16:40:47.536] Server host key: ssh-ed25519 SHA256:<redacted>
[16:40:48.485] Authenticated to <redacted> (via proxy) using "publickey".
[16:40:51.091] Installing to /root/.vscode-server/bin/<commit>...
[16:41:00.436] Download complete
[16:41:05.312] serverStartTime==136==
[16:41:05.316] Resolved remote to a local forwarded port
[16:42:43.436] Opening exec server
[16:42:55.454] Exec server failed: Error: Connecting with SSH timed out
[16:43:06.959] Proxy connection timed out
The server itself started in 136 ms. The delay occurred around remote networking/extension initialization, while plain SSH continued to complete in a few seconds.
Steps to reproduce
- Configure a remote Linux host where selected outbound services require a proxy.
- Export only lowercase proxy variables in the remote shell startup file: http_proxy, https_proxy, and all_proxy.
- Verify that an interactive shell can access the required endpoint through the proxy.
- Connect using VS Code 1.128.1 and Remote-SSH 0.124.0.
- Observe slow Opening Remote, remote download/extension timeouts, or remote extensions failing outbound connections.
- Add equivalent uppercase variables and restart the VS Code Server session.
- Observe that Remote-SSH and remote extensions return to normal.
Suggested fix
Please make proxy propagation into the VS Code Server and all remote child/extension processes deterministic and case-compatible:
- Preserve both lowercase and uppercase standard proxy variables from the remote environment.
- Avoid constructing a reduced environment that silently drops one casing.
- Apply the same environment behavior to legacy server, Exec Server, and extension-host launch paths.
- Document exactly which remote shell startup files and proxy variable names Remote-SSH supports.
- Consider logging the names (not values) of detected proxy variables at trace level.
It would also help if a failed remote outbound request clearly distinguished SSH transport failure from remote proxy/environment failure.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.