如何使用ssh隧道转发*服务*如X11或身份验证?

时间:2011-11-20 18:45:24

标签: ssh ssh-tunnel

我想创建一个服务,允许我显示存储在我通过ssh连接的远程服务器的文件系统中的文档和媒体(想想PDF和JPEG)。 X11转发不会削减它,因为它太慢了。相反,我想设计一个协议,根据需要从远程系统复制文件,然后显示它们。

我的问题有两个:

  1. 如何获取远程计算机上的端口?由于我可能有多个连接,我不能简单地使用一个众所周知的端口 - 我将不得不动态分配一个端口。

  2. 我有端口后,如何将其与远程计算机上的显示应用程序进行通信? SSH X11转发通过设置DISPLAY环境变量进行通信,代理转发通过设置SSH_AUTH_SOCK环境变量进行通信。也许我可以通过远程命令做一些有创意的事情?

  3. 我欢迎任何想法。

1 个答案:

答案 0 :(得分:1)

你真的需要一个远程端口吗?如果你可以ssh到远程机器,为什么不运行命令并通过ssh命令发回数据,如rsync,Mercurial,Git等。 SSH可以提供8位干净连接,因此它就像有一个套接字连接。

要明确,我的建议是:

  1. SSH从始发地到目的地
  2. 在SSH会话中,在将数据写入其标准输出
  3. 的目标上运行命令
  4. 标准输出通过SSH连接从目的地发送到原始
  5. 从原始计算机上的SSH标准输出中收集数据
  6. 无需在原点或目的地打开特定端口。

    事实上,如果你真正想要的是“一个可以根据需要从远程系统复制文件的协议”,那么通过SSH,SCP,SFTP或rsync怎么样?