多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Windows远程Linux部署Claude Code:安装认证与第三方模型接入

Windows远程Linux部署Claude Code:安装认证与第三方模型接入 搞开发的人绕不开一个场景手头一台Windows 10办公机另一台云上或内网的Linux服务器现在想在这台Linux上把Claude Code跑起来日常开发还留在Windows这边。Claude Code本身就是命令行工具装在哪端都能用但如果你打算让它长期干活、后台常驻、配合第三方模型接口那装到Linux上反而是最稳的选择。这篇文章就是冲着这个需求来的从Windows 10本机出发远程登录Linux把Claude Code完整装好、配好认证、接入第三方模型最后再梳理一遍我实测踩过的坑。整个过程不需要你有多深的Linux功底跟着步骤走就可以适合前端开发者、运维、学生以及任何想在Linux服务器上用Claude Code解放本地资源的人。1. 整体思路与方案选型1.1 为什么非要把Claude Code装到远程Linux上很多人第一反应是我Windows上装个Claude Code不就行了确实能装但你要看使用场景。本地跑Claude Code所有对话上下文、缓存、日志都落在Windows这台机器上换一台电脑就什么都没有了。而Linux服务器通常是7x24小时开机的Claude Code装在上面之后你从任何地方SSH进去都能用同一套环境、同一份历史记录配合tmux这类工具还能让Claude Code进入交互会话后长期挂机不占用本地任何资源。另一个实际原因是Claude Code对Linux的兼容性比Windows原生环境更干净。Windows上安装虽然官方也支持但Node.js在Windows下的进程管理、路径分隔符、脚本执行权限这些小毛病会让你多花不少时间去排查。Linux下几乎就是npm装完直接跑没有那些乱七八糟的问题。如果你还打算用cc switch去接DeepSeek、Qwen、GLM这类第三方模型Linux环境下的配置文件和shell集成也更顺手。我自己的场景是本地Windows 10装了VS Code做日常编辑远程一台Ubuntu服务器跑Claude Code。本地VS Code通过Remote SSH连过去编辑远程文件、开终端执行Claude Code手感上跟在本地操作几乎没区别但真正吃CPU和内存的活儿全在服务器上本地风扇都不带转的。1.2 远程接入方式的取舍把Windows和远程Linux打通主流有三条路方案优点缺点适用场景VS Code Remote SSH图形化编辑终端一体体验接近本地需要VS Code插件稍有点内存占用日常开发主力推荐首选纯SSH命令行最轻量任何机器都能用没有图形界面纯键盘操作运维场景、快速巡检Web Terminal如ttyd浏览器直接开终端无需本地安装安全配置麻烦需要额外端口暴露临时借用他人电脑时应急我的建议是主力用VS Code Remote SSH。它不只是帮你开个终端还能直接浏览远程目录、打开远程文件编辑、安装远程插件Claude Code在远程终端里工作时你写的代码和它生成的代码可以在同一个VS Code窗口里对照查看效率比纯终端高一个档次。前期的环境准备其实不复杂Windows这边确认有OpenSSH客户端Linux这边确认装了OpenSSH服务端两边能通过SSH握手就成功了。剩下的事情一步一步来。2. 远程连接与基础环境准备2.1 Windows 10侧的准备SSH客户端与密钥配置Windows 10系统自带的OpenSSH客户端一般够用不需要额外装PuTTY。验证方法很简单打开PowerShell或者CMD输入ssh回车如果出来的是usage帮助信息说明自带客户端已经可以用了。如果提示找不到命令去“设置 - 应用 - 可选功能”里把OpenSSH客户端勾上装上就行。密钥对建议配一下否则每次SSH连接都要输密码次数一多就烦了。在Windows的PowerShell里执行ssh-keygen -t ed25519 -C windows-desktop一路回车默认生成在C:\Users\你的用户名\.ssh\id_ed25519和id_ed25519.pub。然后把公钥内容复制到Linux服务器的~/.ssh/authorized_keys里。最简单的做法type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root服务器IP cat ~/.ssh/authorized_keys这串命令会要求你输入一次远程密码之后再用SSH登录就是免密了。实际上密钥对还有一层好处如果你的服务器开启了密码登录次数限制配好密钥后即使密码策略再严格也不影响登录。2.2 Linux侧的准备SSH服务与基础软件Linux服务器那边要保证两件事sshd服务在运行Node.js环境可用。Ubuntu和Debian系执行sudo apt update sudo apt install -y openssh-server git curl nodejs npm sudo systemctl enable ssh --nowCentOS / Rocky等其他发行版用对应的包管理器比如yum install -y openssh-server git nodejs npm。装的这几个软件各有分工openssh-server让你能被SSH连上git是Claude Code后续拉取项目代码要用的Node.js和npm则是Claude Code本身的运行时。Node.js的版本这里要留意一下。Claude Code对Node版本有要求官方文档写的是18以上但我的实测经验是尽量上20 LTS以上。Ubuntu自带的apt源里Node版本往往偏低比如Ubuntu 20.04默认的是10.x直接装的话后面npm install -g各种报错。建议用nvm装curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm alias default 20装完之后验证一下node -v能看到v20.x的版本号就对了。2.3 VS Code Remote SSH连接实战Windows本机的VS Code建议装微软官方的Remote SSH插件扩展市场里搜“Remote - SSH”就有了。装好后按F1输入“Remote-SSH: Connect to Host”选“ Add New SSH Host”填入你的登录信息比如root192.168.1.100。它会在~/.ssh/config里生成一条配置你还可以顺手给这台服务器起个简短别名比如Host myserver HostName 192.168.1.100 User root Port 22 } 之后再连接直接选“myserver”就行VS Code会帮你在远程Linux上装一个server端组件左下角显示绿色“SSH: myserver”就代表连接成功了。这时你打开VS Code的终端Ctrl终端已经是远程Linux的shell了在这执行Claude Code就等于跑在Linux上。 ## 3. Claude Code安装与认证实操 ### 3.1 核心安装步骤与版本选择 连接上远程Linux之后终端里执行全局安装指令 bash npm install -g anthropic-ai/claude-code装完跑一下claude --version如果输出了版本号就说明核心安装OK。npm全局装的包路径在/usr/lib/node_modules或者nvm管理的snap目录下claude命令能被直接找到说明PATH设置没问题。如果你用nvm装的Node则npm全局目录在~/.nvm/versions/node/v20.x.x/lib/node_modules/下对应bin目录也在同一条路径下nvm自动帮你配置好PATH了。这一步常见的坑是npm下载慢或者超时。国内网络环境建议先配置npm镜像源npm config set registry https://registry.npmmirror.com然后再执行安装命令速度会快很多。装完后如果要升级版本执行npm update -g anthropic-ai/claude-code即可别先卸载再装那样会丢失配置和登录态。3.2 认证流程详解安装完成后在远程终端里输入claude首次运行会进到引导流程。这里根据Claude Code的注册方式不同流程略有区别但大体是两种路径第一种官方账号直接拉起浏览器界面完成授权。引导界面会弹出一个登录链接你把它复制到Windows本机浏览器打开登录Claude账号并授权。授权成功后远程终端会自动跳进交互式对话界面。第二种如果你所在环境无法完成浏览器授权可以使用API Key方式。在Claude官网的Console控制台里创建一个API Key然后在远程Linux终端设置环境变量export ANTHROPIC_API_KEY你的API Key再运行claude它检测到环境变量后会自动跳过登录步骤。为了不让每次SSH新会话都重新export可以把这行追加到~/.bashrcecho export ANTHROPIC_API_KEY你的API Key ~/.bashrc source ~/.bashrc需要提醒一点用API Key计费和订阅账号计费是两套体系如果只是日常编码辅助订阅账号登录更划算如果是程序化调用、要做脚本批量跑API Key更合适。这个按你实际需求来。3.3 首次运行与基础验证认证成功后输入claude会进入命令行交互界面。我建议第一个测试问题就问点实用的比如让它写一段Python脚本或者解释某个Linux命令。它回答的速度取决于服务器性能和网络链路一般几个字到几十个字的响应体感上不会有太大延迟。如果启动时出现类似“Permission denied”的错误提示十有八九是npm全局目录的权限问题。用nvm装Node一般不会遇到但如果你是直接用apt装的Node全局目录在/usr/lib/node_modules当前用户没有写权限导致安装失败或启动异常。解决方式sudo chown -R $(whoami) /usr/lib/node_modules或者干脆用nvm重装Node一步到位。4. 第三方模型接入与配置进阶4.1 用cc switch接入DeepSeek、Qwen、GLM等模型Claude Code默认只能连Anthropic官方接口但实际操作中很多人没有官方账号或者希望用更便宜的国产模型。社区里有个工具叫cc switch专门用来切换Claude Code的配置让它能对接别的兼容接口。这个工具的用法很简单。先安装它npm install -g cc-switch然后运行ccswitch根据交互菜单添加一个provider配置。你需要准备的信息一般只有三项接口地址Base URL、API Key、模型名称。以DeepSeek为例配置长这样配置项值Provider名称deepseekBase URLhttps://api.deepseek.com/anthropicAPI Key你的DeepSeek密钥Modeldeepseek-chat注意到Base URL有个/anthropic后缀这是因为DeepSeek官方专门提供了一个兼容Anthropic API格式的端点Claude Code所有请求不带这个后缀的话会直接404。Qwen通义千问和GLM智谱也在走类似路线具体路径以各家官方文档为准但基本逻辑一致只要它提供Anthropic兼容的API端点Claude Code就能用。4.2 环境变量方式的模型切换cc switch适合要频繁切模型的场景如果只是临时用某一家的模型直接用环境变量方式更轻量。Claude Code读取配置时会优先看环境变量里的ANTHROPIC_BASE_URLexport ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN你的DeepSeek密钥这里用的是ANTHROPIC_AUTH_TOKEN而不是ANTHROPIC_API_KEY因为走第三方兼容接口时Claude Code内部用旧版认证字段找token会更稳定。实测DeepSeek、Qwen、GLM都吃这一套。切换后重新运行claude开头会显示连接的基础URL信息确认是对应厂商地址就说明切换成功了。4.3 本地模型接入与性能平衡如果你有LM Studio这类本地模型服务同样可以接进来。LM Studio启动本地HTTP服务后默认监听http://localhost:1234/v1Claude Code通过以下配置对接export ANTHROPIC_BASE_URLhttp://localhost:1234/anthropic export ANTHROPIC_AUTH_TOKENnot-needed这里token随便填一个非空字符串就行本地服务不校验身份。但有个现实问题本地小模型的上下文窗口和生成能力跟大厂API还是有代差的跑复杂编程任务时经常出现“回答长度不足”或者“格式不完整”的情况。我的建议是本地模型主要用于隐私敏感代码的预览、离线环境的应急正式项目还是用云端模型更靠谱。5. 常见问题排查实录5.1 Windows与SSH层面的故障问题一SSH连接超时或拒绝连接先确认服务器IP能通在Windows PowerShell里ping 服务器IP。通则进一步检查SSH端口Test-NetConnection 服务器IP -Port 22。如果22端口不通很可能是云服务商的安全组没放行去厂家控制台把入方向TCP 22加上。如果ping通但22端口不通多半是iptables或firewalld拦了排查时先别把所有规则删光sudo systemctl stop firewalld只是在定位问题定位完要恢复。问题二VS Code Remote SSH反复要求输入密码优先级最高的原因是没有把Windows公钥放进服务器的authorized_keys。即使你已经配置过也要仔细检查authorized_keys文件权限这个文件权限必须是600.ssh目录权限必须是700权限太松会被sshd直接拒绝加载表现为密码输对了但密钥认证总是失败。5.2 Claude Code自身的启动异常问题一显示“Your organization has disabled Claude subscription access for Claude Code”这个提示说明账号主体是组织用户且组织管理员没放开Claude Code的权限。普通个人账号很少碰到。解决思路是找管理员在后台开启Claude Code访问权限或者换个人账号登录。此外也可能因为你配置了某个第三方API的tokenClaude Code误以为你是组织身份在访问检查一下环境变量里是否残留了ANTHROPIC_API_KEY或ANTHROPIC_AUTH_TOKEN有的话先清掉再试。问题二命令安装成功但claude找不到一般就是PATH问题。重新登录SSH让profile重新加载或者手动执行source ~/.bashrc。还有一种情况是安装到了系统目录但当前用户没有执行权限用which claude查看具体路径如果路径下文件确实存在但执行报权限不足照之前说的chown方式处理。5.3 模型响应异常与性能问题问题一接入DeepSeek后返回HTTP 401API Key错误或Base URL拼写不对。检查是否把官网的带引号key复制进来了比如复制成了sk-xxxx多了引号就会认证失败。Base URL末尾不要带斜杠Claude Code拼接路径时会对不上。问题二第三方模型输出限流默认Claude Code在某些场景下会并发发起多个请求免费或低额度第三方API容易触发限流。处理办法是在运行前设置环境变量限制并发export CLAUDE_CODE_MAX_REQUESTS_PER_MINUTE5实测设为5-10对日常交互影响不大但明显减少了429错误。问题三服务器内存不够启动直接OOMClaude Code本身占用不高但如果你同时跑VS Code Remote Server、Node服务、数据库小内存服务器很容易被打爆。查看内存用free -h如果确实吃紧建议给服务器加SWAPsudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile5.4 Windows 10 LTSC版本的特殊情况有相当一部分读者机器装的是Windows 10企业版LTSC 2019或2021这类系统默认精简了很多组件有两个点要注意。一是自带OpenSSH客户端可能没集成去“设置 - 系统 - 可选功能”手动添加。二是VS Code Remote SSH依赖的Windows安全通道可能有问题症状是连接时报“The process tried to write to a nonexistent pipe”这种一般是OpenSSH客户端版本过旧建议直接去GitHub微软的Win32-OpenSSH仓库下载最新release版的ssh.exe替换掉系统目录里的旧文件。替换时记得提前备份原文件避免路径被占用的尴尬。6. 提效技巧与日常使用姿势6.1 用tmux让Claude Code后台常驻SSH连接断开后终端里跑的Claude Code进程默认会被杀掉这对长期任务很不友好。解决办法是tmuxtmux new -s claude claude然后在tmux会话里正常使用Claude Code。想退出但保留会话时按Ctrlb然后按d脱离会话。下次SSH进来tmux attach -t claude就回到之前的对话现场了历史记录、进程状态全都在。这个技巧看起来简单但实际价值非常大。我有一次让Claude Code分析一个几万行的旧项目中途本地断网了SSH会话断开但tmux里的任务还在跑网络恢复后重新attach一看分析结果已经全部完成了。6.2 本地VS Code与远程Claude Code的协同连接Remote SSH后VS Code左侧的资源管理器看到的是远程Linux文件系统你可以在本地用熟悉的快捷键编辑代码改完保存直接生效。现在打开VS Code内置终端Ctrl进入的是远程shell执行claude然后就能把Claude生成的代码和资源管理器里的文件对照着看。还有人习惯把Claude Code直接拉起来当pair编程工具用。方法是在VS Code终端里运行claude然后输入/init让Claude阅读当前项目的技术栈和代码结构再让它针对某个具体文件给出修改建议。它会基于项目上下文输出分析结论好过你直接甩一段代码让它猜。6.3 经验总结与最后几个小提醒整个链路跑通之后我最高频的使用姿势其实是这样的远程Linux上装好Claude Code然后用VS Code Remote SSH连上去写代码需要AI辅助的时候直接在终端里敲claude它给我生成的方案我会再人工review一遍确认没问题再合入。省掉了来回拷贝代码的麻烦所有改动都在同一台机器上发生上下文是连续的。最后再分享几个实用小经验第一npm全局安装Claude Code之后没事别急着升级。升级前先确认你当前用的第三方模型配置是否兼容新版Claude Code版本更新有时会改配置文件结构cc switch的配置可能需要重新设置。第二远程Linux的时区会影响Claude Code记录的时间戳如果不一致日志分析会绕弯子。设置时区执行sudo timedatectl set-timezone Asia/Shanghai顺手date验证一下。第三安全方面如果这台Linux服务器公网可达建议把sshd的密码登录关掉只用密钥登录。配置文件在/etc/ssh/sshd_config把PasswordAuthentication改成no然后重启sshd服务。这个操作能挡掉绝大部分暴力扫描。按这套流程操作下来Windows 10 远程Linux Claude Code这个组合基本就成型了。后面你再根据项目需要扩展模型、调试参数都会顺手很多。
返回列表