记VScode远程登录时的一次错误

首先需要了解的是 VSCode 远程开发插件在技术层面上是如何工作的,特别是关于 SSH 连接以及如何在远程端安装和使用 vscode-server 的过程。

这样对于问题的查找才有帮助

下面是详细的步骤和技术细节:

SSH 连接:

当你在 VSCode 中使用 Remote - SSH 扩展尝试连接到远程服务器时,VSCode 会利用系统级别的 SSH 客户端来建立连接。这意味着如果需要密码认证,你可能需要输入密码;如果是密钥认证,则需要确保你的私钥已正确配置。
连接字符串通常以 ssh:// 开头,后面跟着远程服务器的地址、端口和用户名,例如 ssh://user@hostname:port

下载和安装 vscode-server:

检测远程环境:当连接成功后,VSCode 会检测远程系统的架构和操作系统类型(如 Linux x64、Windows x64 等)。
下载 vs code server:VSCode 会从其服务器下载与远程主机兼容的 vscode-server 二进制文件。这个二进制文件包含了所有必要的组件来在远程端运行 VSCode 的核心功能。
推送 vs code server 到远程主机:一旦下载完成,VSCode 会通过 SSH 将 vscode-server 二进制文件推送到远程主机上的特定目录(通常是 ~/.vscode-server/bin/<version>)。

启动 vs code server:

在远程主机上,VSCode 会启动 vscode-server 进程。这个进程会监听一个特定的端口,并通过网络与本地的 VSCode 实例通信。
本地的 VSCode 实例通过 WebSocket 协议与远程的 vscode-server 进行通信,从而实现远程编辑、调试等功能。

同步文件:

当你开始编辑远程文件时,VSCode 会在本地缓存这些文件。这样可以更快地进行文件操作,并减少网络延迟的影响。
编辑操作会实时同步回远程主机。

远程扩展:

如果你想要使用特定的扩展程序,这些扩展也会被安装到远程主机上的 ~/.vscode-server/extensions 目录中。你可以选择在远程环境中安装扩展,或者在本地安装并远程使用它们。


You said:
[16:33:04.434] Checking ssh with "C:WINDOWSSystem32OpenSSHssh.exe -V"
[16:33:04.550] > OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3

[16:33:04.555] Running script with connection command: "C:WINDOWSSystem32OpenSSHssh.exe" -T -D 61040 "sghkvm0039.apac.xxxx.com" bash
[16:33:04.560] Terminal shell path: C:WINDOWSSystem32cmd.exe
[16:33:06.252] > 3409c6d6fbbf: running
> Installing to /home/sit1wx/.vscode-server...
> 3409c6d6fbbf%%1%%
> Downloading with wget
> ]0;C:WINDOWSSystem32cmd.exe
[16:33:06.252] Got some output, clearing connection timeout
[16:33:06.291] > wget download failed
> wget: unable to resolve host address ‘update.code.visualstudio.com’
> printenv:
>     SSH_CONNECTION=10.161.231.20 61041 10.161.129.61 22
>     LANG=en_US.UTF-8
>     XDG_SESSION_ID=33203
>     USER=sit1wx
>     PWD=/home/sit1wx/.vscode-server
>     HOME=/home/sit1wx
>     SSH_CLIENT=10.161.231.20 61041 22
>     MAIL=/var/mail/sit1wx
>     SHELL=/bin/bash
>     SHLVL=2
>     LANGUAGE=en_US:en
>     VSCODE_AGENT_FOLDER=/home/sit1wx/.vscode-server
>     LOGNAME=sit1wx
>     DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/550126660/bus
>     XDG_RUNTIME_DIR=/run/user/550126660
>     PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
>     OLDPWD=/export01/home/sit1wx
>     _=/usr/bin/printenv
> Trigger local server download
> 3409c6d6fbbf:trigger_server_download
> artifact==cli-alpine-x64==
> destFolder==/home/sit1wx/.vscode-server==
> destFolder2==/vscode-cli-eaa41d57266683296de7d118f574d0c2652e1fc4.tar.gz==      
> 3409c6d6fbbf:trigger_server_download_end
> Waiting for client to transfer server archive...
> Waiting for /home/sit1wx/.vscode-server/vscode-cli-eaa41d57266683296de7d118f574d
> d0c2652e1fc4.tar.gz.done and vscode-server.tar.gz to exist
[16:33:06.291] Got request to download on client for {"artifact":"cli-alpine-x64","destPath":"/home/sit1wx/.vscode-server/vscode-cli-eaa41d57266683296de7d118f574d0c2652e1fc4.tar.gz"}
[16:33:06.291] server download URL: https://update.code.visualstudio.com/commit:eaa41d57266683296de7d118f574d0c2652e1fc4/cli-alpine-x64/stable
[16:33:06.291] Downloading VS Code server locally...
[16:33:06.302] > 
> 
[16:33:08.334] Resolver error: Error: Failed to download VS Code Server (Failed to fetch)
	at m.Create (c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:501230)
	at c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:552527
	at async t.downloadAndCopyToHost (c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:552027)
	at async c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:622735
	at async t.tryInstall (c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:622981)
	at async c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:582788
	at async t.withShowDetailsEvent (c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:586054)
	at async k (c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:579675)
	at async t.resolve (c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:583465)
	at async c:UsersSIT1WX.vscodeextensionsms-vscode-remote.remote-ssh-0.113.1outextension.js:2:851126
[16:33:08.341] ------

问题关键点1:wget: unable to resolve host address ‘update.code.visualstudio.com’
关键点2:Resolver error: Error: Failed to download VS Code Server (Failed to fetch)

总结来说:VS Code Server下载失败

查找一番后发现公司使用cntlm-xxx-1.0.2-setup.exe
因为你的网络环境配置了某种形式的身份验证(比如NTLM或Kerberos),而 VSCode 的插件市场需要访问互联网才能下载和安装插件。

如果 VSCode 无法直接通过标准方式处理这种身份验证,那么安装并配置 cntlm 可以帮助解决这个问题。cntlm 作为代理服务器,可以处理身份验证请求,并允许 VSCode 通过它来连接到互联网,从而顺利安装插件。

个人电脑也说明应该是本地的网络问题,而不是服务器的

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...