Mac终端SSH连接Ubuntu后,如何将tmux内容复制到Mac剪贴板?
解决tmux远程复制到Mac剪贴板的问题
核心原因
你通过SSH连接远程Ubuntu时,远程的xclip操作的是远程机器的剪贴板(依赖X11环境),和本地Mac剪贴板完全隔离。如果远程是无头服务器(无图形界面),xclip还会因缺少DISPLAY环境变量无法工作,导致复制的内容根本没存入任何剪贴板。
可行解决方案
方案一:利用SSH X11转发(适合带图形界面的远程机器)
- 本地Mac安装XQuartz,安装完成后重启Terminal。
- 连接远程Ubuntu时加
-X参数开启X11转发:ssh -X your-ubuntu-user@ubuntu-ip - 打开XQuartz偏好设置,进入「剪贴板」选项卡,勾选「同步剪贴板」。
- 重新加载tmux配置:
此时tmux复制的内容会通过X11转发同步到XQuartz剪贴板,进而同步到Mac系统剪贴板。tmux source ~/.tmux.conf
方案二:直接将内容发送到本地Mac剪贴板(推荐无头服务器使用)
这个方法无需X11环境,通过SSH反向传输内容到本地:
- 本地Mac开启远程登录:打开「系统设置」→「通用」→「共享」,勾选「远程登录」,记下你的Mac本地IP(比如
192.168.1.100)。 - 远程Ubuntu生成SSH密钥(无密钥时执行):
一路回车用默认设置即可。ssh-keygen -t ed25519 - 将Ubuntu公钥同步到Mac,实现免密登录:
替换为你的Mac用户名和本地IP,输入Mac密码完成同步。ssh-copy-id your-mac-user@192.168.1.100 - 修改远程Ubuntu的
~/.tmux.conf,把复制绑定替换为:bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'cat | ssh your-mac-user@192.168.1.100 "pbcopy"' - 重新加载tmux配置:
现在在tmux里选中内容按tmux source ~/.tmux.confy,内容会直接存入Mac系统剪贴板。
方案三:手动同步(临时应急)
如果不想配置免密登录,可临时手动操作:
- 在tmux里选中内容按
y存入tmux缓冲区。 - 在tmux中执行:
缓冲区内容会输出到终端。tmux save-buffer - - 在本地Terminal选中输出内容,按
Cmd+C复制到Mac剪贴板。
内容的提问来源于stack exchange,提问作者hunhoffe
相关产品推荐
相关产品推荐

