小编典典

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

all

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

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

pbcopy, pbpaste

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

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

是的,我知道我可以(不寒而栗)使用鼠标从命令中选择文本,但是我已经习惯了将输出直接传输到剪贴板的工作流程,我希望远程会话也可以使用相同的方法。

代码很有用,但一般方法也很受欢迎。


阅读 143

收藏
2022-07-02

共1个答案

小编典典

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

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

解决方案的本质:

commandThatMakesOutput | ssh desktop pbcopy

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

它需要将您的桌面配置为 ssh 服务器(我将其留给您和谷歌)。如果您设置了 ssh 密钥以促进快速 ssh
的使用,最好使用每会话密码或任何您的安全需求,这会容易得多。

其他示例:

ls  | ssh desktopIpAddress pbcopy
pwd |  ssh desktopIpAddress pbcopy

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

#!/bin/bash
ssh desktop pbcopy

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

我用文件名 cb 保存它(我的助记符(剪贴板)。将脚本放在路径中的某个位置,使其可执行并瞧:

ls | cb
2022-07-02