相当简单。
如何通过 ssh 隧道传输 Synergy?
我需要通过 ssh 隧道将客户端连接到服务器以获得更安全的连接。
答案1
我知道这已经是很久以前的事了,但它仍然出现在搜索引擎中,所以我想我应该回答。
假设你坐在一台电脑前,它有一个简单的设置,叫做“父母“,这就是和键盘和鼠标。“孩子“是您想要连接的,它没有键盘和鼠标。
[user@parent ~]$ cat /home/user/synergy-over-ssh.conf
section: screens
parent:
child:
end
section: links
parent:
right = child
child:
left = parent
end
section: options
screenSaverSync = true
end
第一步是在父节点上运行服务器
[user@parent ~]$ synergy-core --server --address 127.0.0.1 -c /home/user/synergy-over-ssh.conf -n child-pc
这将启动在父级上监听 24800 端口的服务器。
$ netstat -anp | grep synergy
tcp 0 0 127.0.0.1:24800 0.0.0.0:* LISTEN 3290/synergy-core
现在我们需要从父节点连接到子节点,但随后我们需要发送后退从子端口 24800 到父端口 24800。
[user@parent ~]$ ssh child-user@child -R 127.0.0.1:5900:127.0.0.1:5900
[child-user@child ~]$
在子进程上,你需要运行客户端并告诉它连接到 localhost 或 127.0.0.1
synergy-core --client --name child 127.0.0.1
现在,在父屏幕上,您应该能够将鼠标向右滚动出父屏幕并(似乎)将其移动到子屏幕。
您可以通过在〜/.ssh /配置文件
[user@parent ~]$ cat /home/user/.ssh/config
Host child
user child-user
Hostname ip.or.host.of.child.pc
RemoteForward 127.0.0.1:24800 127.0.0.1:24800
这将允许
[user@parent ~]$ ssh child
[child-user@child ~]$
您可以通过创建一个脚本来自动化整个过程,该脚本会干净地启动协同作用,然后在后台连接到子进程,而无需打开 ssh 终端“-N”选项。
#!/bin/bash
killall synergy-core
synergy-core --server --address 127.0.0.1 -c /home/user/synergy-over-ssh.conf -n child-pc
ssh -N child >/dev/null 2>&1 &
在客户端你应该有一个自动启动脚本,如 $ cat ~/bin/startsynergy.sh #!/bin/bash killall synergy-core sleep 2 synergy-core --client --name child 127.0.0.1 exit 0
请注意,在旧版本上替换synergy-core --server和协同作用, 和synergy-core --客户端和协同作用。
这种方法的一个缺点是,除非您使用子电脑上的键盘启动客户端,否则复制和粘贴将不起作用。