1. 为什么你的 Remote-SSH 每次都要输密码如果你用 VS Code 连远程服务器写代码大概率经历过这个场景点一下左下角的绿色箭头选主机弹窗要密码输一遍过一会儿窗口重载又要输一遍终端里 git pull 再要一次。密码本身不难记烦的是它打断思路的频率。Remote-SSH 的本质是把 VS Code 的「后端」跑在远程机器上本地只负责界面渲染。所以它走的是标准 SSH 通道免密这件事跟你在终端里ssh userhost免密是同一套机制本地生成密钥对公钥放到服务器的~/.ssh/authorized_keys私钥留在本地SSH 握手时自动完成身份校验。搞懂这一点后面所有配置都是围绕「公钥怎么上去、私钥怎么被引用」展开。这篇要解决的不只是免密登录。很多人免密配好了接着想在远程环境里接 AI 编程工具又卡在 Key 管理上每台服务器、每个工具各配一份 API Key改一次要同步好几处。我的做法是用 TaoToken 做统一 Key 通道本地和远程共用一套配置VS Code 里的 AI 插件、终端里的 CLI 工具都指向同一个入口。下面从 SSH 密钥生成一路写到 settings.json每段配置都能直接复制。适合谁看刚接触 Remote-SSH 的新手、被密码弹窗折磨过的开发者、以及想把 AI 编程能力接进远程开发流的人。全程在 Windows 本地 Linux 远程的组合下演示macOS 差异我会单独标出来。2. 前置准备TaoToken 统一 Key 与 API 通道在动 SSH 配置之前先把 Key 这件事理清楚不然后面接 AI 工具时还得回头补。TaoToken 在这里扮演的角色是「统一入口」你不需要为每个 AI 工具单独申请和管理 Key而是拿一个 Key通过统一的 API 通道去调用不同模型。官网在 https://taotoken.net API 端点是 https://taotoken.net/api 。对远程开发场景来说这个设计的好处很直接——服务器上的环境变量、本地的 VS Code 插件、终端里的 CLI全都可以引用同一个 Key换机器不用重新配。具体操作路径打开 https://taotoken.net/api-keys 生成你的 API Key复制保存好。这个 Key 就是后面所有配置里要填的东西。如果你主要用对话式调试可以先去 https://taotoken.net/model-chat 熟悉一下模型调用方式确认通道通不通。如果你打算长期在远程环境里跑编码任务或 Agent建议看一下 Coding Planhttps://taotoken.net/coding-plan 它针对持续性的编码场景做了额度规划比按次调用更划算。控制台入口在 https://taotoken.net/console 可以查看调用记录和额度消耗。需要提醒一点Key 属于敏感凭证别直接硬编码进提交到 Git 的配置文件里。后面我会用环境变量的方式处理本地和远程各配一次互不干扰。3. 可复制配置SSH 密钥、config 骨架与 settings.json这一节是全文的核心分三块本地生成密钥、写 SSH config、配 VS Code 的 settings.json。每块都给完整片段。3.1 本地生成 SSH 密钥对Windows 下打开 PowerShell 或 CMDmacOS/Linux 打开终端执行ssh-keygen -t ed25519 -C vscode-remote一路回车即可。如果你之前已经有id_rsa这里用 ed25519 算法生成新的一对更短更安全。生成后默认落在WindowsC:\Users\你的用户名\.ssh\macOS/Linux~/.ssh/你会看到两个文件id_ed25519私钥留在本地绝不外传和id_ed25519.pub公钥要传到服务器。注意如果你在 Windows 上用的是老版本 OpenSSH可能不支持 ed25519那就退回ssh-keygen -t rsa -b 4096逻辑完全一样。3.2 把公钥传到服务器这一步最容易踩坑。Windows 上传到 Linux 的文本文件可能带^M回车符导致公钥失效。稳妥做法是先转换再追加# 在本地把公钥内容复制到服务器用你习惯的方式scp 或手动粘贴 # 登录服务器后执行 dos2unix id_ed25519.pub mkdir -p ~/.ssh chmod 700 ~/.ssh cat id_ed25519.pub ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys如果服务器上没有dos2unix可以用sed -i s/\r$// id_ed25519.pub替代。权限这三行别省~/.ssh必须是 700authorized_keys必须是 600否则 SSH 会静默拒绝免密。3.3 SSH config 骨架VS Code Remote-SSH 读的是标准 SSH config 文件。按CtrlShiftP输入Remote-SSH: Open SSH Configuration File选默认路径Windows 是C:\Users\你的用户名\.ssh\config。写入Host myserver HostName 192.168.1.100 User root Port 22 IdentityFile ~/.ssh/id_ed25519 ServerAliveInterval 60 ServerAliveCountMax 3逐行说明Host是你自己起的别名VS Code 列表里显示的就是它HostName填服务器真实 IP 或域名IdentityFile指向私钥路径。Windows 下~会被解析成用户目录一般没问题如果报错就写绝对路径C:\Users\你的用户名\.ssh\id_ed25519。ServerAliveInterval这两行是防断连的远程开发挂久了容易掉线加上它 SSH 会定期发心跳。3.4 settings.json 接入 TaoToken免密通了之后把 AI 能力接进来。VS Code 的用户设置文件在CtrlShiftP→Preferences: Open User Settings (JSON)。如果你用的 AI 插件支持自定义 API 端点配置大致如下{ aiAssistant.apiKey: ${env:TAOTOKEN_API_KEY}, aiAssistant.baseUrl: https://taotoken.net/api, remote.SSH.remotePlatform: { myserver: linux }, remote.SSH.connectTimeout: 30 }关键点是apiKey用${env:TAOTOKEN_API_KEY}引用环境变量而不是写死。然后在本地系统环境变量里加一条TAOTOKEN_API_KEY值就是你从 https://taotoken.net/api-keys 拿到的 Key。这样配置文件可以安全地同步到其他机器Key 本身不落盘到项目里。remote.SSH.remotePlatform显式声明远程是 linux能避免 VS Code 反复探测平台类型连接更快。4. 验证请求免密连接与 Key 调用是否真的通了配置写完不算完得验证。分两步。4.1 验证免密登录先在本地终端直接测绕开 VS Codessh myserver如果直接进去了、没要密码说明密钥和 config 都对。如果还要密码看第 5 节的排查。进去之后确认一下whoami ls -la ~/.ssh/authorized_keysauthorized_keys权限应该是-rw-------。4.2 验证 TaoToken 通道在远程服务器上或本地终端用 curl 测一下 API 通道是否可达curl -s -o /dev/null -w %{http_code} \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ https://taotoken.net/api返回 200 或 401 都说明网络通到了端点401 表示 Key 没带上或不对。如果返回 000 或超时是网络层问题不是 Key 问题。更直观的方式是打开 https://taotoken.net/model-chat 用同一个 Key 发一条测试消息确认模型能正常响应。这一步通了说明你的 Key 和通道都没问题剩下的就是各工具怎么引用。4.3 在 VS Code 里端到端跑一遍关掉所有 VS Code 窗口重新打开点左下角绿色箭头 →Connect to Host→ 选myserver。这次应该直接进远程环境不再弹密码。进去后打开一个终端echo $TAOTOKEN_API_KEY确认环境变量在远程也可见如果没配远程环境变量需要在服务器的~/.bashrc里也加一条。到这里免密 统一 Key 的链路就完整了。5. 本篇常见错排查配这套东西报错基本集中在几个地方。我按出现频率排一下。Permission denied (publickey)最常见。九成是权限问题。检查服务器上~/.ssh是不是 700、authorized_keys是不是 600、家目录本身是不是被别人可写chmod g-w,o-w ~。另外确认公钥内容完整cat -A authorized_keys看有没有^M。连接超时 / 卡在 Setting up SSH Host多半是ServerAliveInterval没配或者服务器防火墙挡了。先在终端ssh -v myserver看详细握手日志-v会告诉你卡在哪一步。IdentityFile 路径不生效Windows 下~有时解析异常直接写绝对路径。另外确认私钥文件名和 config 里写的一致别一个叫id_ed25519一个写id_rsa。Key 调用返回 401检查环境变量有没有真的加载。Windows 下改完系统环境变量要重启终端Linux 下改完~/.bashrc要source ~/.bashrc。还有种情况是 Key 复制时带了空格或换行重新从 https://taotoken.net/api-keys 复制一次。远程环境里 AI 插件不工作VS Code 的插件分「本地运行」和「远程运行」两种。AI 插件如果装在远程它读的是远程的环境变量装在本地读本地的。确认你配的环境变量和插件运行位置匹配。接入细节可以对照 https://taotoken.net/doc 的说明。改了 config 但 VS Code 不生效Remote-SSH 会缓存连接信息。CtrlShiftP→Remote-SSH: Kill VS Code Server on Host然后重连。6. 把 Key 管起来而不是到处复制免密登录本身是个小配置真正省时间的是后面这套「统一 Key」的思路。我试过在五台服务器上各配一份 API Key结果换 Key 的时候挨个登录改改漏一台就报错排查半天。后来改成所有环境引用同一个环境变量本地和远程各维护一份.bashrc或系统变量换 Key 只改两处。如果你只是偶尔连一台服务器按第 3 节的 config 配完就够了。如果你像我一样在多台机器间切换、还要在远程跑编码任务建议把 Coding Plan 用起来https://taotoken.net/coding-plan 额度集中管理比每台机器单独算账清楚得多。日常调试用模型对话页快速验证https://taotoken.net/model-chat 需要看调用明细就去控制台https://taotoken.net/console 。最后留一个实用习惯把 SSH config 和 settings.json 里的非敏感部分放进你的 dotfiles 仓库Key 用环境变量占位。换新机器时 clone 下来配一次环境变量十分钟就能恢复完整的远程开发环境。这比每次重新摸索快太多。
企业数字化 ERP 产品动态
相关推荐
Claude Code Token 预算管理:上下文窗口动态计算的配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 16:32:46
nodejs NodeJs版本管理 nvm:NodeJs Version Manager安装nvm:brew install nvmNodeJs包管理 npm:NodeJs Package Managernpm、Yarn 和 pnpm (Performant npm)是三种常见的 js 包管理工具,它们各有优劣,适… · 2026/9/26 16:32:46
【 Node 】Token的生成与验证、密码的加密与验证:用 TaoToken 统一 Key 打通配置骨架 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 16:32:46
openclaw webUI 空白页问题排查:用 TaoToken 统一 Key 打通配置链路 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:09:21
工业级200米4K60Hz无线图传:K230芯片实战方案 1. 项目概述:为什么200米内稳定传输4K60Hz HDMI2.0信号,成了工业现场的“卡脖子”环节?做工业显示系统集成的朋友应该都踩过这个坑:客户指着产线大屏说“我要实时看到检测相机的4K画面”,你掏出一套标称“支持4K”的无… · 2026/9/26 17:09:21
Codex 限额又变回去了:5 小时限额回归,TaoToken 统一 Key 怎么配 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:09:13
168张图搞定输电线路异物检测:VOC转YOLO小样本训练全攻略 简介:变电站及输电线路异物检测图像数据集专注于电力设施安全场景,包含168张已标注图像,可服务于目标检测算法的研发与验证。每张图像均配有对应的VOC格式XML标签文件,标注了异物类别与边界框坐标,开发者无需额外转换即… · 2026/9/26 17:09:13
六大认知校准工具:重塑信息处理底层能力 1. 这不是“资源列表”,而是一套认知升级的底层工具链你有没有过这种体验:刷了一整天信息,合上手机却说不清自己到底学到了什么;收藏了上百个“干货文章”,真正打开看的不到三篇;看到别人谈逻辑、讲框架、拆… · 2026/9/26 17:09:13
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46