解决 Claude Code 通过 SSH 无法粘贴图片:使用 Tabby 图片剪贴板插件
问题现象
在 Windows 上使用 Tabby SSH 连接远程 Linux 或 macOS,并在远端运行 Claude Code 时,经常会遇到以下问题:
- Windows 已经复制了截图,但在 Claude Code 中粘贴时提示没有图片。
- 粘贴后只出现
C:\Users\...这样的 Windows 本地路径。 - 远端机器无法访问 Windows 本地路径,Claude Code 因此无法读取图片。
这不是图片本身有问题,而是因为 Claude Code 实际运行在远端机器上。普通 SSH 不会自动把 Windows 图片剪贴板转换成远端文件,Claude Code 的相关 Issue 中也有不少 Windows、WSL 和 Remote-SSH 用户反馈类似问题。
Tabby 用户可以通过第三方插件 tabby-clipboard-image 解决这个问题。插件会读取本机剪贴板中的图片,通过当前 Tabby SSH 会话的 SFTP 上传到远端,并默认让 Claude Code 将图片识别为原生附件;也可以切换为输入远端文件路径。
工作原理
插件的完整处理流程如下:
本机图片剪贴板 ↓Tabby 插件读取图片并转换为 PNG ↓通过当前 SSH 会话的 SFTP 上传 ↓保存到远端 /tmp 目录 ↓通过 Bracketed Paste 交给 Claude Code ↓显示为 [Image #1] 原生附件插件提供两种粘贴模式:
- 原生附件(默认):上传图片后,通过 Bracketed Paste 发送绝对路径,Claude Code 会将其识别为
[Image #1],输入框中不显示文件路径。 - 远程路径:上传图片后,将带双引号的绝对路径作为普通按键输入,例如
"/tmp/clipboard_1785200000000.png"。
两种模式都会在远端生成真实 PNG 文件,因此不需要在远端安装额外的剪贴板服务。
粘贴快捷键的工作方式
插件监听的是 Tabby 的 paste 粘贴动作,并没有单独固定一个插件快捷键。
Tabby 在 Windows 上默认使用:
Ctrl + Shift + V作为粘贴快捷键。因此在默认配置下,按下 Ctrl + Shift + V 就会触发插件;如果已经修改过 Tabby 的粘贴快捷键,应使用修改后的快捷键。
插件触发后会先检查剪贴板:
- 剪贴板中有图片:上传图片,并按当前模式粘贴为原生附件或远端路径。
- 剪贴板中没有图片:交还给 Tabby 执行普通文本粘贴。
关键前提插件只能取得由 Tabby 自己建立的 SSH 会话。当前活动标签必须是 Tabby 内置 SSH 标签页,并且远端需要支持 SFTP。
使用条件
开始前需要满足以下条件:
- 已安装 Tabby 桌面版 1.0.230 或更高版本;Tabby 网页版不受支持。
- 使用 Tabby 内置 SSH 配置连接远端。
- 远端 SSH 服务支持 SFTP。
- 远端
/tmp目录可写。 - Claude Code 运行在当前 Tabby SSH 标签页中。
远端可以是 Linux,也可以是 macOS。插件只使用 SSH/SFTP 上传图片,远端不需要额外安装剪贴板服务。
必须使用 Tabby 内置 SSH 会话
下面这种连接方式不适用于该插件:
Tabby 本地 PowerShell ↓手动执行 ssh user@server ↓进入远端这种标签页在 Tabby 看来仍然是本地终端,插件无法取得 Tabby 内置 SSH 会话的 SFTP 对象。
应当在 Tabby 中直接创建并打开 SSH 配置:
Tabby→ 配置和连接→ 新建 SSH 配置→ 连接远端通过插件管理器安装
打开 Tabby,进入:
设置 → 插件搜索:
tabby-clipboard-image点击安装,然后彻底退出并重新启动 Tabby。
重启后进入:
设置 → 插件 → Clipboard Image建议确认以下配置:
Enable image paste:开启Paste mode:Native AttachmentFall back to Remote Path:按需开启Show notifications:开启Advanced → Remote upload directory:/tmp使用默认的原生附件模式时,还需要保持 Tabby 的以下选项开启:
设置 → 终端 → Bracketed paste该选项默认开启。关闭时,插件会拒绝发送原生附件,避免把转义序列作为乱码输入终端。
使用 npm 手动安装
如果插件管理器中暂时搜索不到插件,可以从 npm 安装到 Tabby 的用户插件目录。
WARNING不要使用
npm install -g。插件必须位于 Tabby 的插件目录中。
第一步:完全退出 Tabby
先退出 Tabby 主窗口和系统托盘,然后在 PowerShell 中执行:
Get-Process Tabby -ErrorAction SilentlyContinue | Stop-Process -Force第二步:进入 Tabby 插件目录
Windows 默认目录通常是:
C:\Users\你的用户名\AppData\Roaming\tabby\plugins也可以在 PowerShell 中直接进入:
Set-Location "$env:APPDATA\tabby\plugins"第三步:安装插件
npm install --no-save tabby-clipboard-image--no-save 表示不把插件写入该目录的 package.json 依赖列表;插件包仍会安装到 node_modules 中。
第四步:验证安装结果
检查插件入口文件:
Test-Path ` ".\node_modules\tabby-clipboard-image\dist\index.js"正常应返回:
True也可以检查 npm 依赖树:
npm ls tabby-clipboard-image --depth=0本文使用的版本应显示为:
tabby-clipboard-image@0.1.0安装完成后重新启动 Tabby。插件默认启用原生附件模式、关闭自动降级、开启通知,并使用 /tmp 作为远端上传目录。
在 Claude Code 中粘贴图片
第一步:使用 Tabby 建立 SSH 会话
打开已经保存的 Tabby SSH 配置并连接远端机器。
不要先打开本地 PowerShell,再手动运行 ssh。
第二步:启动 Claude Code
例如:
cd "/Users/arrog1nt/code/koishi 插件"claude第三步:在 Windows 上截图
使用 Windows 截图快捷键:
Win + Shift + S也可以从浏览器或图片软件中复制真实图片。
第四步:触发 Tabby 粘贴
点击 Claude Code 输入框,按下 Tabby 当前配置的粘贴快捷键。
Tabby 在 Windows 上的默认粘贴快捷键是:
Ctrl + Shift + V插件会把图片上传到远端:
/tmp/clipboard_1785200000000.png默认的 Native Attachment 模式会让 Claude Code 输入框显示:
[Image #1]继续输入问题并提交即可,例如:
请分析这张图片中的报错:[Image #1]如果更希望看到并手动引用文件路径,可以在插件设置中将 Paste mode 改为 Remote Path。此时输入框会出现:
"/tmp/clipboard_1785200000000.png"必要时也可以改为明确的文件引用:
@/tmp/clipboard_1785200000000.png两种模式都会将图片保存为 /tmp/clipboard_<时间戳>.png;区别只在于路径是以 Bracketed Paste 交给 Claude Code 识别为原生附件,还是作为普通文本输入。
常见问题
按粘贴快捷键没有反应
先确认剪贴板中确实是图片。推荐使用 Win + Shift + S 重新截图后立即测试。
如果剪贴板中只有文字,插件会放弃图片上传,并让 Tabby 继续执行普通文本粘贴,这是正常行为。
还应检查:
- 当前焦点是否位于 Claude Code 输入框。
- 使用的是否是 Tabby 当前配置的粘贴快捷键。
- 当前标签是否为 Tabby 内置 SSH 会话。
- SSH 是否已经完成连接。
- 插件的
Enable image paste是否开启。 - 安装后是否已经彻底重启 Tabby。
提示找不到 SSH 会话
通常是因为使用了:
本地 PowerShell → 手动 ssh请改用 Tabby 中保存的 SSH 配置直接连接远端。
提示 SFTP 错误
可以在 Windows PowerShell 中测试当前 SSH 配置是否支持 SFTP:
sftp macmini连接成功后输入:
quit如果 SFTP 本身无法建立,插件也无法上传图片。
提示 /tmp 没有权限
在远端执行:
touch /tmp/tabby-image-test &&rm /tmp/tabby-image-test没有报错说明 /tmp 可写。
如果服务器对 /tmp 有特殊限制,需要修改插件的远端保存目录,或者为当前用户提供一个可写目录。
插件未加载或没有出现在设置中
完全退出 Tabby,然后检查插件入口文件:
Test-Path ` "$env:APPDATA\tabby\plugins\node_modules\tabby-clipboard-image\dist\index.js"返回 True 后重新启动 Tabby。
如果仍然报错,可以按 Ctrl + Shift + I 打开 Tabby 开发者工具,在 Console 中搜索:
clipboard-image同时检查 Tabby 版本是否达到 1.0.230,以及当前使用的是否为桌面版而不是网页版。
原生附件模式没有出现 [Image #1]
先确认:
- 插件设置中的 Paste mode 为 Native Attachment。
- Tabby 的 设置 → 终端 → Bracketed paste 已开启。
- 前台程序是 Claude Code,而不是普通 Shell 提示符。
- 上传目录为绝对路径,例如
/tmp。
然后在远端检查文件:
file /tmp/clipboard_1785200000000.png正常应显示:
PNG image data如果当前 Claude Code 版本仍无法识别原生附件,可以开启 Fall back to Remote Path,或者直接将 Paste mode 改为 Remote Path,再使用明确的文件引用:
@/tmp/clipboard_1785200000000.png清理远端临时图片
插件会把图片保存在远端 /tmp 目录中。多数系统会定期清理 /tmp,也可以手动删除:
rm -f /tmp/clipboard_*.png只查看文件而不删除:
ls -lh /tmp/clipboard_*.png 2>/dev/null不要在没有确认文件名的情况下执行范围过大的 /tmp 删除命令。
最终使用流程
完成配置后,日常使用只需要三步:
- 在 Windows 中按
Win + Shift + S截图。 - 回到 Tabby 中运行 Claude Code 的远程 SSH 标签页。
- 按下 Tabby 的粘贴快捷键,默认是
Ctrl + Shift + V。
插件随后自动完成:
读取本机图片剪贴板→ 转换为 PNG→ 通过当前 SSH 会话的 SFTP 上传→ 保存到远端 /tmp→ 默认作为 Claude Code 原生附件粘贴这个方案不依赖 SSH 剪贴板转发,不需要在远端安装额外服务,也不需要手动使用 SCP。插件同时支持 Windows、macOS 和 Linux 上的 Tabby 桌面版;本文主要介绍 Windows 本地连接远端 Linux 或 macOS 的场景。