我知道我可以通过运行ssh -X <host>连接到主机并使用窗口应用程序。
但是,如果我已经通过正常的SSH连接,例如ssh <host> 。
有没有办法让X转发,而不必重新连接?
当SSH连接启动时,它已经启动了。 你需要把它拆掉,用你想要的选项重新创build一个SSH连接(除了在Mark Wagner的回答中提到的端口转发外)。 OpenSSH 4.0+有一个function,它使用ControlMaster选项为新的SSH命令重新使用现有的连接,但这不完全是你想要的。
不容易。 从OpenSSH 5.1开始,〜C转义命令行支持运行时创builddynamic(-D)端口转发。 如果您的本地X服务器正在侦听TCP套接字,您可以创build一个端口转发给它。 现在大多数X服务器都没有。 假设它是,那么你需要设置xauth数据并设置DISPLAY环境variables。
在内部,OpenSSH转发到您的X服务器的unix域套接字,并自动处理xauth数据并设置DISPLAY。
不支持现有连接的dynamic更改,因为在build立连接时build立了转发,因此您必须重新连接以启用/禁用此连接。