如何通过 SSH 隧道传输 Synergy?

如何通过 SSH 隧道传输 Synergy?

相当简单。

如何通过 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 --客户端协同作用

这种方法的一个缺点是,除非您使用子电脑上的键盘启动客户端,否则复制和粘贴将不起作用。

相关内容