我有一台用Cygwin X服务器运行Windows的笔记本电脑。在这台机器上,我有一个运行在VMWare下的虚拟Linux盒。
我在VM上设置了导出DISPLAY=xserver:0,在cygwin上做了xhost +xclient。我可以使用主机名或IPv4地址。现在,我可以通过重定向显示来运行我的X程序(主要是emacs/xterm)。到目前一切尚好。
这在Windows膝上运行,但也会被虚拟机获取。我现在可以在任何一台机器上与AWS交谈。到目前一切尚好。
但是,如果我试图在linux机器上启动任何X程序,它就拒绝对其进行身份验证。我只是得到错误“授权必需,但没有指定的授权协议”。如果我添加IP地址或服务器名,这并不重要--同样的错误。两个IP地址都没有改变(我已经用Wireshark验证了这一点)。
如果我使用xhost +来禁用身份验证,那么我可以连接,但这显然是非常不安全的,我不想这样做。
知道怎么回事吗?
发布于 2023-03-03 16:03:41
嗯。
但是,如果我试图在linux机器上启动任何X程序,它将拒绝对其进行身份验证。
这大概是在linux (=VM)上运行"DISPLAY=xserver:0“之后。在这种情况下,任何xclient都会尝试打开到xserver:6000的新连接。这还意味着,此时您在linux机器上有一个ssh会话。Ssh有内置的处理X的机器。
这在您的环境中是如何工作的,我不知道--我没有使用Cygwin构建/您没有说您使用的是什么ssh客户端。很有可能在这个混合体的某个地方缺少什么东西。首先,使用putty阅读ssh客户端- IIRC的文档,在连接之前,您需要在配置中显式地设置一个标志。如果无法解决此问题,则可以尝试下载Mobaxterm的副本,并尝试通过ssh会话运行xclient (同样,不设置显示)。
https://unix.stackexchange.com/questions/700869
复制相似问题