当前位置: 首页 > news >正文

使用vscode的ssh功能连接远程服务器卡在Setting up SSH Host IP: Downloading VS Code Server的解决方案

使用xshell可以直接连接到远程服务器,虽然第一次连接的时候也配置了下,具体还是区分用户名密码以及端口号这些,看清了再写;

但是用vscode的ssh功能连接远程服务器卡在Setting up SSH Host IP: Downloading VS Code Server这一步,具体和kimi沟通了几轮,在我的情况中有效的步骤:

A:

VS Code SSH 插件 默认用密钥登录
如果服务器 只给密码、没给你私钥,就会卡在 “Downloading VS Code Server”(其实是密钥认证失败→重试→死循环)。


① 让 VS Code 弹出密码框

  1. F1Remote-SSH: Settings

  2. 找到并打勾:

    Remote.SSH: Show Login Terminal
  3. 重新连接,VS Code 会在下方 TERMINAL 里让你输密码(不是弹窗)。
    输完即继续。

由于输入密码也没解决,又问:我关了重启vscode还是Setting up SSH Host IP: Downloading VS Code Server的状态

A:

VS Code SSH 重启后仍卡在 Downloading VS Code Server

问题本质:
“Downloading VS Code Server” 卡住 ≈ 远程服务器下载 vscode-server 压缩包超时/中断/损坏,VS Code 一直重试,于是显示“Setting up SSH Host …”不动。


① 最快自救(2 分钟)

  1. 在本机浏览器手动下好服务器端安装包

    • 先拿 Commit ID
      打开 VS Code → 右下角齿轮 → Help → About → 复制 Commit 那一串。

    • 浏览器访问(把 <COMMIT> 换成你的):

      https://update.code.visualstudio.com/commit:<COMMIT>/server-linux-x64/stable

执行这一步出现了如下问题:

Cannot GET /commit:%20<COMMIT-ID>/server-linux-x64/stable

A:

报错原因:
URL 里把 commit 值前后多了空格或 %20,于是服务器返回 404/400。
把空格去掉、直接拼 commit-id 即可下载。


① 拿到正确 commit-id(无空格)

在 VS Code → Help → About → 复制 Commit 一行,
只保留 16 进制串,例如:

<COMMIT-ID>


② 用 新 CDN 链接(2025 年后稳定)

我没有按照kimi的反馈,而是直接从xshell查看了当前用户目录下的.vscode-server目录下的所有内容:ll 

-rw-rw-r-- 1 user user 18146 9月 18 23:02 .<COMMIT>.log -rw-rw-r-- 1 user user 8 9月 18 22:35 .<COMMIT>.pid -rwx------ 1 user user 37 9月 18 22:35 .<COMMIT>.token* drwxrwxr-x 3 user user 4096 9月 18 22:34 bin/ drwxrwxr-x 3 user user 4096 9月 18 23:04 cli/ -rw------- 1 user user 505 9月 20 23:33 .cli.<COMMIT>.log -rwxrwxr-x 1 user user 24499040 9月 18 07:41 code-<COMMIT>* drwx------ 7 user user 4096 9月 18 22:42 data/ drwx------ 8 user user 4096 9月 20 13:28 extensions/ -rw-rw-r-- 1 user user 0 9月 30 13:35 vscode-cli-<COMMIT>.tar.gz 其中<COMMIT> 部分只是字长同 Commit ID 打开 VS Code → 右下角齿轮 → Help → About → 复制 Commit 那一串的<COMMIT>,实际字符不同,但是我重新下载相应的<COMMIT>不是遇到之前提到的错误?所以此时应该怎样?

A:

你看到的文件列表已经 是完整可用的 VS Code Server(bin、cli、extensions 都在,连 token 都生成了),
只是 Commit ID 与本地 VS Code 客户端对不上,所以 VS Code 一直在 “Downloading”→重下→再对不上” 死循环。


① 让客户端“认账”——把服务器端现有 Commit ID 抄回来

  1. 在服务器执行:

    bash

  • Copy

    basename ~/.vscode-server/bin/* | grep -E '^[a-f0-9]{40}$' | head -1

    会输出 服务器实际拥有的 40 位 Commit,例如:

    <COMMIT-ID>
  • 在本机 VS Code 安装同版本服务器
    F1Remote-SSH: Settings → 找到
    Remote.SSH: Server Install Path
    填入:

    ~/.vscode-server/bin/<COMMIT-ID>

    保存后重新连接,VS Code 发现路径已存在 → 直接复用,不再下载

然后我插了句:话说为啥每次新打开vscode来连接远程ssh设备都会在.ssh config里新写入一些IP port 怎么回事?

A:

这是 Remote-SSH 插件的“自动写入”功能 在帮你偷懒——
每次你用 VS Code 图形界面 输入 IP:端口 并连接成功后,插件会把这条连接记录自动追加~/.ssh/config,这样下次就能在左侧 SSH 面板 一键点击,不用再输地址。


① 写入内容长什么样

ssh

Copy

Host IPHostName IPPort 22User root

Host 行就是你在图形界面里输入的 “标签”,后面三行是实际连接参数。


② 为什么会“重复”

  • 手动改过一次 Host 标签(比如加了端口、改了用户名),
    插件认不出“这是同一条”,于是再写一条新的

  • 或者 IP 相同但端口不同(22 vs 8022),也会被当成两个 Host


③ 如何关闭自动写入

VS Code 设置里搜:

Remote.SSH: Use Local Server

把它 取消勾选,插件就不再自动写 config;
或者 手动把 ~/.ssh/config 设为只读,插件写不进去就安静了。

Q:server install path是key value的形式

A:

  • key = 你在 SSH config 里写的 Host 名称(或 IP)

  • value = 服务器端 已存在 的 server 目录(到 bin 层) 

Q:保存 → 重连  具体是怎么操作在vscode里

A:

在 VS Code 里“保存 → 重连”只要 3 步,**全程图形界面**:

---

### 1. 保存设置
- 设置页填完路径后 **直接关闭标签页**(`Ctrl+W`)  
→ VS Code 会自动保存 `settings.json`,**无需手动点保存按钮**。

### 2. 关闭当前远程窗口
- **文件菜单** → **Close Remote Connection**  
或左下角 **“><” 图标** → **Close Remote Connection**  
→ 本地窗口留下,远程窗口被关掉。

### 3. 重新发起连接
- 左侧 **远程资源管理器** → 找到你的主机(IP)→ **点击一下**  
→ 状态栏先显示 **“Connecting to IP…”**  
→ 几秒后提示 **“SSH connected”** 并自动打开远程窗口,**不会再出现 Downloading**。

---

### 快捷键一条龙(可选)
```
Ctrl+Shift+P → Remote-SSH: Connect to Host → 选 IP
```
同样完成“重连”。

---

### 一句话
> **“关闭远程窗口 → 再点一次主机名” = 重连,**  
> **VS Code 会自动用你刚保存的 ServerInstallPath,**  
> **从此跳过 Downloading,秒进远程。**

Q:可能是我没有关闭,所以重连的时候还是一直卡着,我觉得直接点左侧 远程资源管理器 → 找到你的主机(IP)→ 点击一下
→ 状态栏先显示 “Connecting to IP…” 这样可能还是有问题,因为可能是缓存的什么commit id

A:

完全正确——
“直接再点主机”只是复用旧会话缓存,不会重新读你刚填的 ServerInstallPath
必须 先彻底杀掉旧远程会话,再发起新连接,VS Code 才会用新配置。


① 彻底关闭远程会话(清缓存)

  1. 本地窗口里按 Ctrl+Shift+P

  2. Remote-SSH: Kill Current Connection
    → 状态栏里的 “SSH” 图标消失,说明远程进程已死。

这里具体是Kill current host什么的,命名稍有不同,但是点进去可以看到各个IP

# 本地终端执行(不是服务器)
ssh -O exit IP 这句没发执行,本地是windows系统

所以这句没执行

而是执行了之前说的把远程连接关了,然后自动写入那些也关了,然后重新连接的:

这次连接输入了两次密码,不过好像是进入到了真的下载阶段而不是卡在此前的一个阶段,所以应该是有所进步了,不过还是比xshell慢很多,能不能让xshell去连接,下次直接用vscode把xshell当虚拟机那样连接或者怎么连接反正就是计算机里的问题解决不了加一个中间层变量这样接近;后续没有再继续看kimi的回复,问题已经解决了;

http://www.dtcms.com/a/427386.html

相关文章:

  • vscode连接算力平台
  • VSCode中Java开发环境配置的三个层级(Windows版)1-3
  • 西安建设网站的公司网页装修设计
  • 太空算力革命:卫星如何成为地面交通的“天脑“
  • 大数据 Python小说数据分析平台 小说网数据爬取分析系统 Django框架 requests爬虫 Echarts图表 17k小说网 (源码)✅
  • 第 1 天:零基础入门 C 语言 —— 认识 C 语言的起源、特点与应用场景
  • 网站建设制作公司地址网站建设费用明细
  • image process unit 模块实现防抖的原理
  • 【LeetCode 每日一题】2221. 数组的三角和
  • 爬虫之淘宝接口获取:Python 返回淘宝商品详情数据 API 接口
  • 合肥专业网站优化seo在线培训机构排名
  • 便利的聊城网站建设整站网站优化
  • C# 对Bitmap 的一些处理方法,裁剪,压缩,旋转等
  • Labview多个子VI加密码和去密码
  • LabVIEW声音压力与响度实时监测
  • 网站毕业设计选题本溪网站建设兼职
  • Python利用ffmpeg实现rtmp视频拉流和推流
  • 佛山电商网站建设软件开发流程流程图
  • 嵌入式软件开发工程师待遇seo管理员
  • cuda编程笔记(25)-- 如何像函数对象一样使用核函数
  • K230基础-摄像头基本原理
  • 数学笔记①
  • 企业为什么要网站建设seo推广哪家服务好
  • 详细解说基于mysql分布式锁的三种实现方式
  • 外贸网站设计注意事项网站繁体和中文这么做
  • AdGuard解锁订阅版高级版 安卓广告拦截器APP v4.11.63 / 4.13.7 Nightly MOD
  • 网站建设免费书江宁网站制作
  • claude code + claude code router 接入魔搭、openrouter等
  • 图观 流渲染场景服务器
  • Android Studio 代码混淆核心解释