如何从远程 ssh 连接上的 tmux(复制模式)复制到本地剪贴板

9

我在OS X上通过VirtualBox运行Linux。我通过以无头状态运行我的虚拟机,然后使用端口转发ssh到Linux机器。现在,无论在虚拟机上复制什么内容,我都可以将其粘贴到远程ssh会话中,但反之则不行(从tmux复制模式复制)。我尝试使用以下tmux配置:

setw -g mode-keys vi
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "tmux save-buffer - | ssh host pbcopy"

很遗憾,这不起作用...使用鼠标手动复制可以,但tmux复制模式更方便。有什么建议吗?


你的OSX上tmux的版本是多少? - Ram
你最终解决了这个问题吗? - Anthony
是的,Ram的答案解决了问题。 - Leeren
2个回答

4
需要将tmux缓冲区与OSX剪贴板集成。您尝试使用ssh host pbcopy实现此目的,但我认为您的设置不正确。
这里的host应该是您本地的OSX计算机。您应该在您的OSX用户名和运行tmux的远程用户之间建立基于密钥的无密码信任。 步骤1。 在您的OSX上启用SSH。前往系统偏好设置 -> 共享并启用远程登录。还要从列表中删除管理员并添加您的用户名。 步骤2。 设置无密码登录。请按照此步骤进行操作。 步骤3。 将您的host替换为192.x.x.x或您的OSX IP地址,该地址可以从Virtualbox访问到。

很遗憾,这不起作用...为了澄清,我通过ssh在Linux上运行tmux,并希望能够将在tmux上复制的任何内容放到我的本地OS X剪贴板上。 - Leeren
是的,你说得对...我会纠正答案。 - Ram
是我忘记配置无密码登录了。现在它已经完美地运行了。非常感谢! - Leeren

4
我知道这个问题已经有答案了,但我想提供一种替代方案;从远程主机的tmux复制模式中复制文本到本地系统一直是让我头疼的问题,我经常使用Windows笔记本电脑来SSH进入远程系统,但显然没有好方法进行远程复制,特别是当你需要复制超过一个屏幕的文本时......所以我写了一个工具:rclip,它使用tmux的复制管道命令将复制的文本导入到rclip中,并且rclip会通过网络将文本转发到运行在本地系统上的rclip进程,该进程将接收到的文本复制到系统剪贴板;所有通信都通过TLS进行身份验证和加密;试试看吧,我非常满意它的表现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接