一尘不染

如何从远程SSH会话将数据发送到本地剪贴板

linux

Borderline ServerFault问题,但是我正在 编程 一些shell脚本,所以我先在这里尝试:)

大多数* nixes都有一个命令,使您可以将输出通过管道传输/重定向到本地剪贴板/粘贴板,并从中进行检索。在OS X上,这些命令是

pbcopy, pbpaste

无论如何,在通过SSH连接到另一台服务器时是否可以复制此功能?那是,

  1. 我正在使用计算机A。
  2. 我打开一个终端窗口
  3. 我通过SSH连接到计算机B
  4. 我在计算机B上运行命令
  5. 计算机B的输出将被重定向或自动复制到计算机A的剪贴板中。

是的,我知道我可以(使用鼠标)从命令中选择文本,但是我已经习惯了将输出直接拖到剪贴板的工作流程,因此我希望对远程会话也是如此。

代码是有用的,但也欢迎使用一般方法。


阅读 316

收藏
2020-06-03

共1个答案

一尘不染

我正在恢复该线程,因为我一直在寻找相同的解决方案,并且已经找到了一种适合我的解决方案。这是对OSX
Daily
的建议的较小修改。

就我而言,我使用本地OSX计算机上的Terminal通过SSH连接到linux服务器。像OP一样,我希望能够仅使用键盘将少量文本从终端传输到本地剪贴板。

解决方案的实质:

commandThatMakesOutput | ssh desktop pbcopy

在与远程计算机的ssh会话中运行时,此命令采用 commandThatMakesOutput
的输出(例如ls,pwd),并将输出通过管道传输到本地计算机的剪贴板(“桌面”的名称或IP)。换句话说,它使用嵌套的ssh:您通过一个ssh会话连接到远程计算机,在其中执行命令,然后远程计算机通过另一个ssh会话连接到桌面,并将文本放入剪贴板。

它要求将您的桌面配置为ssh服务器(我留给您和Google使用)。如果您已经设置了ssh密钥来促进ssh的快速使用,则要容易得多,最好使用每个会话的密码短语或任何您的安全需求。

其他例子:

ls  | ssh desktopIpAddress pbcopy
pwd |  ssh desktopIpAddress pbcopy

为了方便起见,我创建了一个bash文件来缩短管道后所需的文本:

#!/bin/bash
ssh desktop pbcopy

就我而言,我使用的是特别命名的密钥

我以文件名 cb (我的助记符(ClipBoard))保存了该脚本。将该脚本放在您的路径中的某个位置,使其可执行并执行以下操作:

ls | cb
2020-06-03