尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

离线配置Vscode远程虚拟机环境

离线配置Vscode远程虚拟机环境 开发过程中遇到在没有网络的环境下配置生产环境。一 本地 VSCode 装 Remote-SSH 插件离线场景如果你的本地 VSCode 还没装 Remote-SSH 系列插件且本地也没网需要在一台有网的机器上操作在有网机器上安装 VSCode扩展市场搜索并安装以下三个插件均为 Microsoft 官方出品Remote - SSHRemote - SSH: Editing Configuration FilesRemote Explorer对每个插件点齿轮图标 → Download VSIX把 .vsix 文件拷到 U 盘或内网机器在离线本地 VSCode 中扩展面板 → 右上角 … → Install from VSIX逐个安装二、获取本地 VSCode 的 Commit IDCommit ID 是 40 位十六进制哈希必须和要部署的 server 版本严格一致错一位整个安装都会失效 。获取方式任选一种VSCode 菜单Help → About找到 “Commit” 那一行复制后面的字符串命令行code --version | grep -E ‘1{40}$’如果之前连过并失败远程机器的 ~/.vscode-server/bin/ 目录下也会留下以 commit_id 命名的文件夹记下这串 ID下文用 ${COMMIT} 代替。三、下载 vscode-server 安装包在有网环境可以是你本地机器也可以是能联网跳板机下载两个包# 核心 server 包x64 架构wget-Ovscode-server-linux-x64.tar.gz\https://update.code.visualstudio.com/commit:${COMMIT}/server-linux-x64/stable# CLI 工具包wget-Ovscode-cli-alpine-x64.tar.gz\https://update.code.visualstudio.com/commit:${COMMIT}/cli-alpine-x64/stable⚠️ 架构必须匹配如果是 ARM 服务器把 x64 换成 arm64即 server-linux-arm64/stable 。四、把包传到远程虚拟机并部署1. 传输文件通过跳板机 SCP 或 U 盘拷贝到远程虚拟机.2. 在远程虚拟机上部署新版 VSCode ≥ 1.79新版本的 vscode-server 目录结构已经变化需要同时部署 server 和 cli 两部分 # 登录远程虚拟机后执行COMMIT你的commit_id# 1. 创建新版 server 目录mkdir-p~/.vscode-server/cli/servers/Stable-${COMMIT}/server# 2. 解压 server 包去掉顶层目录tar-xzf~/vscode-server-linux-x64.tar.gz\--strip-components1\-C~/.vscode-server/cli/servers/Stable-${COMMIT}/server# 3. 部署 CLI 包并打标记cp~/vscode-cli-alpine-x64.tar.gz\~/.vscode-server/vscode-cli-${COMMIT}.tar.gzcp~/vscode-cli-alpine-x64.tar.gz\~/.vscode-server/vscode-cli-${COMMIT}.tar.gz.done旧版部署方式VSCode ≤ 1.78如果是老版本 VSCode目录结构更简单 COMMIT你的commit_idmkdir-p~/.vscode-server/bin/${COMMIT}tar-zxf~/vscode-server-linux-x64.tar.gz\--strip-components1\-C~/.vscode-server/bin/${COMMIT}# 验证目录内容ls~/.vscode-server/bin/${COMMIT}# 应该能看到bin, extensions, node, server.sh 等说明版本的判断不一定准备可能和ssh插件的版本也有关系我使用1.90的vscode版本按照新版部署失败但是发现自动产生了bin文件夹然后尝试按照旧版本的设置直接成功了。–strip-components1 的意思是解压时剥掉压缩包里路径的最顶层目录。一句话理解把它想成解压出来的文件少一级父文件夹。tar -tf 包名 | head 来决定剥掉几层3. 修复目录权限重要chmod700~/.vscode-server权限过大会导致 VSCode 拒绝启动 server 。(之前多次尝试都失败可能是这里的原因)五、配置本地 VSCode 不自动下载为了避免连接时 VSCode 又尝试从远程 wget 下载会导致失败或覆盖需要做两个设置1. 禁用 ExecServer 模式推荐Ctrl, 打开设置搜索 remote.SSH.useExecServer取消勾选设为 false。注快捷键不好使可以直接在左下角找到设置或者在 settings.json 里加{remote.SSH.useExecServer:false}2. 关闭本地自动更新可选设置中搜索 update把 Update: Mode​ 改为 manual避免 VSCode 自动升级后 commit_id 不匹配 。意义不大本身无网络的生产环境也不会有升级3. 配置 SSH config编辑 ~/.ssh/configWindows 在 C:\Users用户名.ssh\config按照正常的ssh链接配置即可六、建立连接回到 VSCode左侧点击远程资源管理器图标选择 SSH 配置找到 “我的虚拟机”点击连接按钮选择远程系统类型Linux底部状态栏显示 SSH 连接成功后VSCode 会检测到 ~/.vscode-server 下已有匹配的 commit 目录跳过下载阶段直接启动服务0-9a-f ↩︎
返回列表