🧭 核心特性与工作原理

ssh-clipboard 解决了在个人多台设备间安全、高效共享剪贴板的问题,其核心优势包括:

  • 原生体验:直接读写系统剪贴板(macOS 的 pbcopy/pbpaste,Linux 的 Wayland/X11),而不是在终端中模拟粘贴,因此支持文件、图片等原生格式。
  • 极致隐私:通过点对点 SSH 同步数据,没有中间服务器、没有账号、不引入新的加密密钥,完全依赖你现有的 SSH 基础设施。
  • 快速可靠:采用持久连接、数据去重和队列机制,同步速度快,且能处理冲突(保留最新内容)。
  • 自动化运维:提供 monitor(实时仪表盘)和 status --json(状态检查)命令,便于集成到脚本中。

其工作流程简单直接:

  1. 在每台你需要同步剪贴板的机器上安装 ssh-clipboard
  2. 在任一机器上运行 ssh-clipboard setup,添加对端机器的 SSH 连接信息(支持 Tailscale 自动发现)。
  3. 此后,在任何一台机器上复制内容,都会自动同步到所有已连接的设备。

📦 安装

前提要求

  • 操作系统:macOS 或 Linux (x64/arm64)。
  • Node.js 环境:需要 Node.js 和 npm。
  • SSH 配置:目标机器必须能够通过 SSH 无密码登录(建议使用 SSH 密钥)。

安装步骤

使用 npm 进行全局安装是最推荐的方式:

1
npm i -g ssh-clipboard

安装后,ssh-clipboard 命令即可用。

🚀 快速配置与使用

1. 首次设置与添加对端 (setup)

在每台机器上,运行以下命令来配置要同步的远程主机:

1
ssh-clipboard setup
  • 如果机器上安装了 Tailscalesetup 命令会自动列出同一网络中的在线设备,方便选择。
  • 你也可以手动输入任何支持 SSH 无密码登录的地址(例如 user@192.168.1.100user@hostname.local)。
  • 该命令会验证 SSH 连接,检查远端是否已安装 ssh-clipboard,如有需要则自动安装或升级,然后启动一个用户级后台服务(macOS 为 launchd,Linux 为 systemd)。

2. 日常同步

配置完成后,同步是全自动的:

  • 在机器 A 上复制任何内容(文本、文件、图像)。
  • 在机器 B 上直接粘贴(Cmd+VCtrl+V),内容会立即出现。

3. 监控与状态查看

  • 实时仪表盘

    1
    ssh-clipboard monitor

    这个 TUI 界面会清晰列出所有已连接机器的在线状态、版本信息。按 u 键可以手动触发所有机器的版本检查更新。

  • 脚本化状态检查

    1
    ssh-clipboard status --json

    输出机器连接状态和版本信息,便于自动化运维。

4. 手动更新

1
2
3
4
5
# 检查是否有新版本可用
ssh-clipboard update --check

# 执行更新
ssh-clipboard update

更新命令会自动比较当前版本与 npm 最新版本,并优雅地重启后台服务。

🔧 高级配置与故障排查

  • 自动更新机制:每个安装的守护进程会在启动时和每 15 分钟检查一次 npm 稳定版更新。更新包经过 SHA-512 和 SHA-256 双重校验,确保完整性后原子性地替换二进制文件并重启服务。
  • 一致性:所有更新事件会在连接的对端间“传播”,因此你可以在任何一台机器上触发一次更新,整个集群最终都会收敛到最新版本。
  • 故障排查
    • 如果同步失败,首先检查 ssh-clipboard status 确认连接状态。
    • 确保所有机器上 ssh-clipboard 版本一致(使用 --version 查看)。
    • 检查 SSH 无密码登录是否正常工作:ssh user@hostname echo "ok"
    • 手动重启后台服务:macOS 上 launchctl kickstart -k gui/$(id -u)/com.ssh-clipboard.daemon;Linux 上 systemctl --user restart ssh-clipboard.service

总结

ssh-clipboard 为需要跨设备安全、高效同步剪贴板的用户提供了一个理想的本地解决方案。安装和配置的核心在于通过 npm 全局安装后,使用 setup 命令建立各机器间的 SSH 信任关系。日常使用完全无感,就像在使用同一台机器的剪贴板。其 monitorstatus 命令为高级用户和自动化运维提供了良好的可观测性。如果你已经在使用 SSH 密钥管理多台设备,这将是替代云剪贴板服务的绝佳开源选择。