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

时间:2015-06-25 22:41:56

标签: linux macos ssh tmux

我在OS X上通过VirtualBox运行linux。我通过在无头状态下运行我的VM然后使用端口转发sshing到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复制模式更方便。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这需要将tmux缓冲区与OSX剪贴板集成。您要对ssh host pbcopy尝试做的只是那样,但我不认为您的设置是正确的。

host这里应该是您当地的OSX机器。并且您应该在您的OSX用户名和运行tmux的远程用户之间建立密码更少的基于密钥的信任。

第1步。在您的OSX上启用SSH  转到System preferences -> Sharing并启用Remote Login。同时从列表中删除管理员并添加您的用户名。

第2步。设置密码少登录。
这些是steps

第3步。将您的host替换为192.x.x.x或您的Virtualbox可从您的Virtualbox中获取的任何OSX的

答案 1 :(得分:2)

我知道这个问题已得到解答,但只想提供替代解决方案;

将tmux复制模式中的文本从远程主机复制到本地系统对我来说总是很痛苦,我使用Windows笔记本电脑连接到远程系统很多,但显然没有好办法做远程复制,特别是当你有多个文本屏幕要复制......

所以我编写了一个工具:rclip,它使用tmux的copy-pipe命令将复制的文本传递给rclip,rclip将文本通过网络转发到在本地系统上运行的rclip进程,该进程将复制收到的文本到系统剪贴板;所有通信都通过TLS进行身份验证和加密;试一试,我很满意