边界服务器故障问题,但我正在编程一些shell脚本,所以我先在这里尝试:)
大多数*nixes都有一个命令,可以让您将输出管道/重定向到本地剪贴板/粘贴板,并从中检索。在OS X上,这些命令是
pbcopy, pbpaste
当SSHed到另一个服务器时,是否有办法复制此功能?也就是说,
我用的是电脑A。
我打开一个终端窗口
我SSH到计算机B
我在计算机B上运行一个命令
计算机B的输出被重定向或自动复制到计算机A的剪贴板。
是的,我知道我可以(战栗)用鼠标从命令中选择文本,但我已经习惯了直接将输出输出到剪贴板的工作流程,所以我希望远程会话也能这样。
代码很有用,但通用方法也很有用。
ssh服务器反向隧道端口
所有现有的解决方案要么需要:
客户端上的X11(如果有的话,服务器上的xclip效果很好)或
客户端和服务器在同一个网络中(如果你在工作时试图访问你的家用电脑,情况就不同了)。
这里有另一种方法,不过您需要修改ssh登录计算机的方式。
我已经开始使用这个,它远没有看起来那么吓人,所以试一试。
客户端(ssh会话启动)
ssh username@server.com -R 2000:localhost:2000
(提示:使此为键绑定,这样您就不必键入它)
客户端(另一个选项卡)
nc -l 2000 | pbcopy
注意:如果你没有pbcopy,那么就把它tee到一个文件。
服务器(SSH会话内部)
cat some_useful_content.txt | nc localhost 2000
其他的笔记
实际上,即使您在ssh会话中间,也有一种方法可以启动隧道,但我不想把人们吓跑,因为实际上并没有看起来那么糟糕。但如果有人感兴趣的话,我会稍后再补充细节
我重新启用这个帖子是因为我一直在寻找同样的解决方案,我已经找到了一个适合我的解决方案。这是对OSX日报建议的一个小修改。
在我的例子中,我使用本地OSX机器上的Terminal通过SSH连接到linux服务器。像OP一样,我希望能够仅使用键盘将小块文本从终端传输到本地剪贴板。
解决方案的精髓:
commandThatMakesOutput | ssh desktop pbcopy
当在远程计算机的ssh会话中运行时,该命令接受commandThatMakesOutput的输出(例如ls, pwd),并将输出管道输出到本地计算机的剪贴板(“desktop”的名称或IP)。换句话说,它使用嵌套ssh:您通过一个ssh会话连接到远程计算机,在那里执行命令,远程计算机通过另一个ssh会话连接到您的桌面,并将文本放入剪贴板。
它要求将您的桌面配置为ssh服务器(我把它留给您和谷歌)。如果您已经设置了ssh密钥以方便快速使用ssh,那么就会容易得多,最好使用每个会话的密码短语,或任何您的安全需求。
其他的例子:
ls | ssh desktopIpAddress pbcopy
pwd | ssh desktopIpAddress pbcopy
为了方便起见,我创建了一个bash文件来缩短管道后所需的文本:
#!/bin/bash
ssh desktop pbcopy
在我的情况下,我使用一个特殊命名的密钥
我用文件名cb(我的助记符(剪贴板)保存它。把脚本放在你路径的某个地方,让它可执行,瞧:
ls | cb