如何使用 xhost/xauth 控制从 EC2 到 cygwinX 的 X11 访问
Posted
技术标签:
【中文标题】如何使用 xhost/xauth 控制从 EC2 到 cygwinX 的 X11 访问【英文标题】:How to use xhost/xauth to control X11 access from EC2 to cygwinX 【发布时间】:2016-08-21 05:45:29 【问题描述】:我必须在这里遗漏一些非常简单的东西:
我正在从我的 Cygwin/X Windows 桌面连接到 RedHat 7 Enterprise EC2 实例。我使用ssh -XYg -i kekfile.pem user@123-amazonaws.com
连接。然后我export DISPLAY=:10.0
。
只要我在客户端这样做就可以正常工作:xhost +
但这似乎有点冒险,因为它会让我网络上的任何东西都连接到我的本地 X11 服务器。你怎么能使用xhost
或xauth
(或其他东西?)只允许一个 ssh 会话使用我的本地 X11 服务器?
【问题讨论】:
不需要设置DISPLAY。如果 ssh 成功转发 X,它会为你设置一个合适的 DISPLAY。也不需要运行“xhost +”。为什么你觉得有必要这样做? 我就是这么想的。但是,如果我只是ssh
到 EC2 主机上并运行 X 程序,我会得到:xterm: Xt error: Can't open display: xterm: DISPLAY is not set
【参考方案1】:
好的,我意识到我是在倒退。希望这将有助于任何想要托管 EC2 机器的 CygwinX 用户:
-
在开始 ssh 会话之前
export DISPLAY=:0.0
只需在 ssh 中使用 -Y
标志
打开 ssh 隧道后,不要设置 DISPLAY。它会自动为您设置。
然后您可以在 CygwinX 端设置xhost -
,隧道连接仍然可以正常工作。
【讨论】:
以上是关于如何使用 xhost/xauth 控制从 EC2 到 cygwinX 的 X11 访问的主要内容,如果未能解决你的问题,请参考以下文章
如何创建 IAM 策略以根据子网名称标签控制对 Amazon EC2 资源的访问?
如何从 Amazon EC2 实例中找出“公共 DNS 名称”?