如何通过 ssh 连接将图像发送到本地 Windows 剪贴板?

如何通过 ssh 连接将图像发送到本地 Windows 剪贴板?

我与另一台运行 Ubuntu 的计算机建立了 ssh 连接。我希望能够从文件中复制图像,example.png并将其显示在剪贴板中(而不是文本),并能够将其粘贴到任何地方,例如 GitHub 或 Discord。

目前,我正在使用ncat它来执行此操作,但它仅适用于文本文件。
ncat -klc "clip" localhost 10009在 Windows 上
ssh -R 10008:localhost:10009 192.168.1.3通过 ssh
ncat --send-only localhost 10008 < example.txt将文本输出发送到 Windows 剪贴板

有没有办法使用 来做到这一点ncat,或者甚至xsel

答案1

在本地机器上安装 X11 服务器(例如 cygwin/x11 中的 XWin、X410 或 Xming)。启用 X11 转发功能后连接到远程系统:

PS> $env:DISPLAY = "localhost:0"
PS> ssh -Y myserver

然后使用xclip正确的格式将图像复制到 X11 剪贴板。在 X11 端,image/bmp应该有一个可以工作的:

$ magick convert ~/foo.jpg bmp:- | xclip -in -sel clipboard -target image/bmp

(在两种操作系统中,多种格式或X11 术语中的“目标”可以通过剪贴板提供 - 该xclip工具一次只允许提供一种目标类型,但这仍然比xsel不允许更改其提供的类型的要好。)

然后,X11 服务器应将 X11 格式转换为 Windows 格式。不幸的是,这不起作用正确地对于我来说,使用 X410 服务器(位图数据在粘贴到 Windows 时会错位),但它仍然是起点。

相关内容