科研党都懂一个矛盾:算力在办公室,灵感在家里。
办公室那台工作站是干活的主力——几十G内存、多核 CPU、甚至一块 GPU,白天挂着跑程序。家里一台轻薄笔记本,方便但算不动任何东西。
以前的折中方案是 向日葵、ToDesk、TeamViewer,鼠标隔着屏幕划半天,卡顿劝退,Python 报错还得盯着看。
今天换个玩法:在家里笔记本的终端敲一句中文,Claude 直接登录办公室工作站跑脚本、读结果、写进论文 .tex 文件里。
不用远程桌面画面,不用盯着进度条,全程自然语言 + 命令行。配置一次,整篇论文的实验-分析-写作链路就全部串起来了。
这篇文章讲的就是如何搭这套环境。
整个方案长什么样
一张图说清楚链路:
家里 Mac (Claude CLI) → SSH MCP Server → Tailscale 虚拟网络 → 办公室工作站 (OpenSSH + Git Bash)
四个组件各司其职:
- Tailscale
把家里笔记本和办公室工作站拉进同一个虚拟局域网,绕开公网 IP 和 NAT,学校/公司防火墙也挡不住 
- OpenSSH
让 Windows 工作站像 Linux 服务器一样可被 SSH 登录 - Git Bash
给 Windows 一个 ls、grep、awk、python都能用的类 Unix 环境 - Claude CLI + SSH MCP
让你用自然语言下达指令,Claude 自动翻译成 Shell 命令执行,拿回结果再做下一步
关键是最后这一步——Claude 不只是个命令翻译器,它会读工作站上的日志、分析计算结果、然后直接把数字和图填进你本地的论文 LaTeX 源码里。这才是 AI + CLI 真正解放科研生产力的地方。
下面一步步配。
第一步:用 Tailscale 打通两台机器
办公室 Windows 通常躲在内网,没有公网 IP。Tailscale 是一个零配置的虚拟组网工具,装完登录同一个账号,两台机器就在同一个网里了。
1.1 注册账号
访问 tailscale.com,用 Google/Microsoft/GitHub 账号登录即可。免费额度个人用完全够。
1.2 Windows 端安装
下载 Windows 版本:https://tailscale.com/download 安装 .exe后,点击 Sign in to your network浏览器登录同一账号 任务栏图标会显示分配的 Tailscale IP(形如 100.x.x.x)
1.3 Mac 端安装
下载 macOS 版本,安装 .pkg用同一个账号登录 菜单栏出现 Tailscale 图标即成功
1.4 验证连接
在 Mac 终端执行:
bash
tailscale status输出大致是这样:
100.x.x.x OFFICE-PC yourname@ active 100.x.x.x Home-Mac yourname@ active记下 Windows 那台的 Tailscale IP,后面 SSH 就用它。
第二步:给 Windows 装上 SSH 服务
2.1 安装 OpenSSH Server
以管理员身份打开 PowerShell,执行:
powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.02.2 启动服务并设为开机自启
powershell
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'2.3 放行防火墙
powershell
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) { New-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow }2.4 给 Windows 用户设密码
SSH 不允许空密码登录。如果你平时是免密进 Windows,先设一个:
powershell
net user yourname 你的密码把 yourname 换成你的 Windows 用户名。
第三步:把 Git Bash 变成 SSH 默认 Shell
SSH 登录 Windows 默认落在 CMD,很多 Linux 命令都不认。把 Git Bash 设为默认 Shell,体验立刻拉满。
3.1 装 Git for Windows
下载地址:https://git-scm.com/download/win
安装时默认选项一路 Next 即可。
3.2 找到 bash.exe 的路径
powershell
where.exe bash通常是 C:\Program Files\Git\usr\bin\bash.exe。
3.3 改注册表
管理员 PowerShell 执行:
powershell
# 设置默认 Shell 路径 New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name "DefaultShell" -Value "C:\Program Files\Git\usr\bin\bash.exe" -PropertyType String -Force # 设置命令选项 Set-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name "DefaultShellCommandOption" -Value "-c" # 重启 SSH 服务 Restart-Service sshd3.4 验证
powershell
Get-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH"看到下面两行就对了:
DefaultShell : C:\Program Files\Git\usr\bin\bash.exe DefaultShellCommandOption : -c第四步:Mac 端装好 Claude CLI
4.1 安装
bash
npm install -g @anthropic-ai/claude-code验证:
bash
claude --version4.2 添加 SSH MCP Server
这是让 Claude 能执行 SSH 命令的关键插件:
bash
claude mcp add ssh-mcp-server npx '@zibdie/ssh-mcp-server@latest'4.3 先手动测一下 SSH
bash
ssh yourname@100.x.x.x输完密码,如果直接进入 Git Bash(提示符是 $),一切就绪。
第五步:用一句话遥控工作站
打开 Claude CLI:
bash
claude然后用人话下命令:
Connect to my office workstation at 100.x.x.x with username yourname and connectionId 'office'
首次连接会问主机指纹,输入 yes。之后只要带上 connection 'office',所有命令都会发到工作站执行。
下面是我日常真正在用的几类指令。
跑计算任务
"在 office 上运行 D:\projects\swot\run_experiment.py --config exp03.yaml,跑完把 stdout 最后 50 行给我""启动 train.py放到后台,用 nohup,日志写到train.log""查看 train.log最后 20 行,告诉我 loss 有没有收敛"
读结果、写进论文
这是整个工作流最爽的一段:
"读取 office 上 D:\results\exp03\metrics.json,把 RMSE、bias、相关系数填进本地manuscript/results.tex的 Table 2 对应单元格""office 上 D:\results\exp03\figures\scatter.pdf是最新出图,下载到本地manuscript/figures/并覆盖旧版本""比较 office 上 exp02 和 exp03 的 metrics.json,在本地 response/review1.tex第 3 条回复里把差异写清楚"
Claude 会自己完成:SSH 跑命令 → 拿回数值/文件 → 打开本地 .tex → 精确改对应位置。
调试与实验迭代
"在 office 上 tail -f train.log,看到 loss 爆掉就 kill 掉进程并告诉我""把 config.yaml里learning_rate改成 5e-5,然后重新跑train.py""对比本地 exp03.yaml和 office 上的那份有没有差异"
文件同步
"把本地 ./config/exp04.yaml传到 office 的D:\projects\swot\configs\""从 office 下载 D:\results\exp04\整个目录到本地data/exp04/"
踩过的坑与解法
连不上,提示 Connection refused 或超时
tailscale status确认两台都在线 用的是 100.x.x.x的 Tailscale IP,不是局域网 IPWindows 上 Get-Service sshd看服务是否运行防火墙规则是否启用
登录后还是 CMD,ls 不认
确认第三步的注册表改对了 - 重启一次 Windows
,多数情况能让注册表彻底生效 临时救急:登录后手动输入 bash进入 Git Bash
bash 命令找不到
确认 Git for Windows 装了 where.exe bash看实际路径 注册表 DefaultShell是否指向正确路径
Claude CLI 报 command not found
重新开一个终端,或 source ~/.zshrc确认 npm 全局 bin 在 PATH 里: npm config get prefix
一直提示密码错误
确认 Windows 用户有密码(不能空) 用户名拼写正确(Windows 里 whoami查一下)先在 Mac 终端手动 SSH 验证密码
某些 Linux 命令 Git Bash 没有
Git Bash 是最小环境,像 htop、systemctl 这种是没有的。想要完整 Linux?在 Windows 上装 WSL,SSH 登录后输入 wsl 进入即可。
写在最后:这是科研工作流的重塑
这套方案本质上把一个科研课题的三个核心环节串成了一条链路:
- 算力层
:办公室工作站(Windows + GPU + 大内存)负责所有重计算 - 控制层
:家里笔记本(Mac)只做输入输出,任何硬件都能胜任 - 写作层
:本地的 LaTeX 论文源码,随时被 AI 根据最新实验结果更新
以前科研的痛点是"实验-分析-写作"三件事散落在不同机器不同工具里,每次切换都要搬数据、对路径、改格式。现在呢?
只需要一句话——"跑新实验 exp05,结果更新到论文 Table 2 和 Figure 3"。
Claude 会自己去工作站跑代码、等结果、下载图表、改 LaTeX、甚至顺手跑一下 xelatex 编译看看有没有报错。
花 30 分钟配一次环境,你换回的是科研全流程自动化:
审稿人让补一个实验?在家里沙发上让 Claude 跑 导师突然要最新数字?一句话拉回来填进正文 想在咖啡馆改 Response to Reviewers?工作站照常算,Mac 只负责写字
这大概就是 2026 年科研工作流该有的样子——人类负责提问和判断,机器负责跑和写。
夜雨聆风