解决 Claude Code 通过 SSH 无法粘贴图片:使用 Tabby 图片剪贴板插件

2432 字
12 分钟
解决 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 Attachment
Fall 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 中执行:

Terminal window
Get-Process Tabby -ErrorAction SilentlyContinue |
Stop-Process -Force

第二步:进入 Tabby 插件目录#

Windows 默认目录通常是:

C:\Users\你的用户名\AppData\Roaming\tabby\plugins

也可以在 PowerShell 中直接进入:

Terminal window
Set-Location "$env:APPDATA\tabby\plugins"

第三步:安装插件#

Terminal window
npm install --no-save tabby-clipboard-image

--no-save 表示不把插件写入该目录的 package.json 依赖列表;插件包仍会安装到 node_modules 中。

第四步:验证安装结果#

检查插件入口文件:

Terminal window
Test-Path `
".\node_modules\tabby-clipboard-image\dist\index.js"

正常应返回:

True

也可以检查 npm 依赖树:

Terminal window
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#

例如:

Terminal window
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:

Terminal window
sftp macmini

连接成功后输入:

quit

如果 SFTP 本身无法建立,插件也无法上传图片。

提示 /tmp 没有权限#

在远端执行:

Terminal window
touch /tmp/tabby-image-test &&
rm /tmp/tabby-image-test

没有报错说明 /tmp 可写。

如果服务器对 /tmp 有特殊限制,需要修改插件的远端保存目录,或者为当前用户提供一个可写目录。

插件未加载或没有出现在设置中#

完全退出 Tabby,然后检查插件入口文件:

Terminal window
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 modeNative Attachment
  • Tabby 的 设置 → 终端 → Bracketed paste 已开启。
  • 前台程序是 Claude Code,而不是普通 Shell 提示符。
  • 上传目录为绝对路径,例如 /tmp

然后在远端检查文件:

Terminal window
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,也可以手动删除:

Terminal window
rm -f /tmp/clipboard_*.png

只查看文件而不删除:

Terminal window
ls -lh /tmp/clipboard_*.png 2>/dev/null

不要在没有确认文件名的情况下执行范围过大的 /tmp 删除命令。

最终使用流程#

完成配置后,日常使用只需要三步:

  1. 在 Windows 中按 Win + Shift + S 截图。
  2. 回到 Tabby 中运行 Claude Code 的远程 SSH 标签页。
  3. 按下 Tabby 的粘贴快捷键,默认是 Ctrl + Shift + V

插件随后自动完成:

读取本机图片剪贴板
→ 转换为 PNG
→ 通过当前 SSH 会话的 SFTP 上传
→ 保存到远端 /tmp
→ 默认作为 Claude Code 原生附件粘贴

这个方案不依赖 SSH 剪贴板转发,不需要在远端安装额外服务,也不需要手动使用 SCP。插件同时支持 Windows、macOS 和 Linux 上的 Tabby 桌面版;本文主要介绍 Windows 本地连接远端 Linux 或 macOS 的场景。

参考#

解决 Claude Code 通过 SSH 无法粘贴图片:使用 Tabby 图片剪贴板插件
https://lunary.cc/posts/解决-claude-code-通过-ssh-无法粘贴图片使用-tabby-图片剪贴板插件/
作者
鹤望兰
发布于
2026-07-28
许可协议
CC BY-NC-SA 4.0