边界服务器故障问题,但我正在编程一些shell脚本,所以我先在这里尝试:)
大多数*nixes都有一个命令,可以让您将输出管道/重定向到本地剪贴板/粘贴板,并从中检索。在OS X上,这些命令是
pbcopy, pbpaste
当SSHed到另一个服务器时,是否有办法复制此功能?也就是说,
我用的是电脑A。
我打开一个终端窗口
我SSH到计算机B
我在计算机B上运行一个命令
计算机B的输出被重定向或自动复制到计算机A的剪贴板。
是的,我知道我可以(战栗)用鼠标从命令中选择文本,但我已经习惯了直接将输出输出到剪贴板的工作流程,所以我希望远程会话也能这样。
代码很有用,但通用方法也很有用。
我重新启用这个帖子是因为我一直在寻找同样的解决方案,我已经找到了一个适合我的解决方案。这是对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
这是我基于SSH反向隧道、netcat和xclip的解决方案。
首先创建脚本(例如:Clipboard-daemon.sh)
#!/bin/bash
HOST=127.0.0.1
PORT=3333
NUM=`netstat -tlpn 2>/dev/null | grep -c " ${HOST}:${PORT} "`
if [ $NUM -gt 0 ]; then
exit
fi
while [ true ]; do
nc -l ${HOST} ${PORT} | xclip -selection clipboard
done
然后在后台启动。
./clipboard-daemon.sh&
在接收到部分数据后,将开始数控管道输出到xclip和重生过程
然后启动ssh连接到远程主机:
ssh user@host -R127.0.0.1:3333:127.0.0.1:3333
当登录在远程框上时,尝试这样做:
echo "this is test" >/dev/tcp/127.0.0.1/3333
然后在您的工作站上尝试粘贴
当然,您可以编写包装器脚本,首先启动clipboard-daemon.sh,然后启动ssh会话。这就是我的工作方式。享受。