【问题标题】:Cygwin XWin server randomly loses connectionCygwin XWin 服务器随机断开连接
【发布时间】:2012-11-07 20:31:58
【问题描述】:

我正在使用 cygwin ssh 到远程 linux 机器,并正在使用 cygwin XWin 服务器来显示 gui 应用程序。

当我第一次连接到远程机器时,会显示以下警告:

Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.

不管有什么警告,XWin 一开始似乎都能完美运行。一段时间后(通常大约 15 分钟),它将不可避免地失去连接。 cygwin X 服务器图标仍然显示在 Windows 任务栏中,所以我知道它仍在运行。到目前为止,我发现的唯一解决方法是注销然后再次 ssh 重新登录。超级烦!请帮忙!

谢谢,

-德里克

【问题讨论】:

  • 使用 ssh -Y 而不是 ssh -X 似乎已经解决了这个问题,虽然我还在交叉手指。

标签: linux ssh cygwin x11


【解决方案1】:

我使用以下方法解决了问题:

ssh -Y user@server 

而不是

ssh -X user@server

显然,-Y 和 -X 标志都做同样的事情(启用 X11 转发)。不同之处在于 -X 使用安全模式,而 -Y 使用信任模式。如果您信任要连接的机器,请仅使用 -Y。如果您使用 -X,那么远程机器将受限于它可以对您的显示器执行的操作。对我来说,这意味着我的显示会在一段时间后超时。改用 -Y,我的连接永远不会超时。

【讨论】:

    【解决方案2】:

    tl;dr 使用ssh -Y

    从 openssh 5.6 开始,当您使用 ssh -X 连接请求不受信任的连接时,将强制执行 ForwardX11Timeout 值(默认为 20 分钟),即使不受信任的 X11 转发设置失败并且建立了受信任的连接。 (我找不到任何有关此更改的公告,但请参阅[1]了解相关代码更改)。

    此超时是您在使用ssh -X 时要求的“安全”策略的一部分,并防止在超时到期后与 X 服务器建立新连接。

    如果您将-v 选项添加到 ssh(这在调查 ssh 问题时通常很有帮助),您应该在尝试启动新客户端时收到“Rejected X11 connection after ForwardX11Timeout expired”消息。

    [1]http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/clientloop.c.diff?r1=1.220;r2=1.221;f=h

    【讨论】:

      【解决方案3】:

      当我阅读“远程”时,我想到了防火墙。可能是您在 ssh 会话上有一个不活动计时器,导致它在一段时间后“拆除”?如果是这样,您会在各种日志(服务器和防火墙)中找到它的踪迹。如果没有,这只是一般的 cygwin-X-stability-problem,您可能需要考虑使用 virtualbox | vmware 和您在 windows-Box 上选择的 linux-distro。如果您使用“nat”作为以太网设备,它将搭载 Windows 的 IP;如果您需要 ssh “进入”您的 VM-Guest,您可以设置窗口以将传入的 tcp/22 传递到 VM-Guest 的堆栈。 (如果您在 tcp/22 上使用 cygwin 的 sshd,则无法使用);否则祝你好运 //rhi

      【讨论】:

        猜你喜欢
        • 2017-04-29
        • 1970-01-01
        • 1970-01-01
        • 2017-11-21
        • 1970-01-01
        • 2014-10-13
        • 2019-04-16
        • 2023-04-07
        • 1970-01-01
        相关资源
        最近更新 更多