从Mac(10.7.2)登录到Linux(Ubuntu 8.04)时,ssh转发我的X11连接时遇到了一个新的令人烦恼的问题。使用ssh -X登录到远程计算机并从该Shell启动基于X11的应用程序时,我没有问题。
最近开始发生的事情是,由于转发的显示被阻止(我认为),经过一段时间(约数小时),无法从同一shell额外调用X11应用程序。例如,当尝试启动xterm时,我收到有关DISPLAY设置错误的常见消息,例如:
xterm Xt错误:无法打开显示:localhost:10.0
但是,我在登录时立即启动的X11应用程序仍然运行良好,并使用了完全相同的显示(localhost:10.0),只是它早先启动了。
我打开了sshd_config中的详细日志记录,并在/var/log/auth.log文件中看到此消息,以响应失败的xterm启动尝试:
sshd [22104]:通道8:打开失败:在管理上被禁止:打开失败
如果我再次将-X SSH到服务器,启动新的外壳并分配新的显示(localhost:11.0),则重复相同的过程:只要我保持打开状态(天, ),但几个小时后,我无法从该shell启动任何新的。
细节:在Ubuntu 8.04上运行的OpenSSH sshd服务器,显示已转发到运行带有默认Apple X服务器的Lion(10.7.2)的Mac。这些系统通过以太网LAN连接,并且它们之间只有一个开关。两台计算机均未运行防火墙。直到最近(几天前),该设置仍然可以正常工作,因此我对下一步的定位感到困惑。我绝不是X11或SSH专家,但具有良好的UNIX / Linux经验。尽管我尝试更改一些选项来进行调试,但客户端或服务器配置都没有明显变化,例如将sshd_config的TCPKeepAlive设置为no,并设置“ host + localhost”(您可以知道我一直在使用Google搜索)。
当从Linux 11.10便携式计算机通过同一网络登录到同一远程主机并进行切换时,不会发生此问题-可以在数小时后从同一ssh登录外壳成功调用xterm,而从Mac进行的同一实验失败(确保今天上午进行了测试),因此这似乎是Mac特有的问题。
由于在远程计算机(sshd服务器)上设置了“ LogLevel DEBUG3”,并且我没有对客户端连接进行任何更改,因此/var/log/auth.log会在一夜之间显示连接状态报告中的一个细微变化,这是使用的端口号通过来自Linux机器的一个成功的ssh会话(我认为),下面的连接#7:
sshd [20173]:debug3:通道7:状态:下列连接已打开:\ r \ n#0服务器会话(t4 r0 i0 / 0 o0 / 0 fd 14/13 cfd -1)\ r \ n#3从127.0.0.1端口57564(t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1)的X11连接\ r \ n#4从127.0.0.1端口57565(t4 r2 i0 / 0 o0 / 0 fd 17的X11连接/ 17 cfd -1)\ r \ n#5 X12从127.0.0.1端口连接57566(t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1)\ r \ n#6从127.0.0.1端口进行X11连接57567(t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1)\ r \ n#7 X11从127.0.0.1端口59007连接
在此报告中,状态报告之间的所有内容都是相同的,只是连接#7使用的端口号(我相信这是Linux客户端),这是唯一仍保持显示连接的端口。从一连串的这些报告来看,它随着时间的推移持续增加。
谢谢你的帮助,
-麦克风
code
ForwardX11Timeout过期后拒绝X11连接ForwardX11Timeout是Mac ssh客户端中的一个选项,用于限制从不受信任的连接进行转发。可能使用-Y而不是-X将起作用。Lion的ssh手册页中没有记录ForwardX11Timeout。默认值是20分钟。可以在ssh_config中将其设置为更高,但是如果将Lion's X Server设置为> 596小时,则会崩溃……这会以毫秒为单位,溢出31位。啊 希望可以解决它。