边界服务器故障问题,但我正在编程一些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会话中间,也有一种方法可以启动隧道,但我不想把人们吓跑,因为实际上并没有看起来那么糟糕。但如果有人感兴趣的话,我会稍后再补充细节
这是我基于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会话。这就是我的工作方式。享受。