每次我从 Mac 启动 ssh 连接到 Linux (Debian) 时,我都会收到此警告:
No xauth data; using fake authentication data for X11 forwarding.
Run Code Online (Sandbox Code Playgroud)
对于使用 ssh 的工具,如 git 或 mercurial,也会发生这种情况。
我只想对我的系统进行本地更改,以防止出现这种情况。
注意:我的 Mac OS X (10.8.1) 上确实有 X11 服务器 (XQuartz 2.7.3 (xorg-server 1.12.4)) 并且它工作正常,我可以在本地或远程成功启动时钟。
我有主机 A、B 和 C。从主机 AI 只能通过 ssh 访问 B。从 BI 可以访问 C。我希望能够在 C 上运行 X11 程序并将显示转发到 A。
我试过这个:
A$ ssh -XB B$ ssh -XC C$ xclock 错误:无法打开显示:
但它不起作用。
我曾经在 GNOME 中交换过大写锁定和控制,但是当我升级到 Ubuntu 9.04 时,我也将我的桌面环境更改为 Xfce。我的 xorg.conf 中有以下行:
Option "XkbOptions" "ctrl:nocaps"
Run Code Online (Sandbox Code Playgroud)
但这似乎对 Xfce 没有影响。有任何想法吗?
我正在尝试通过 X11 转发和 SSH 运行各种 Gnome 应用程序。某些应用程序会导致首先生成“dbus-launch”应用程序。问题是当退出 X 应用程序时 dbus-launch 不会关闭,因此必须在 SSH 会话可以正确关闭之前终止。
我认为问题是 X/Gnome 应用程序无法与主消息总线守护进程连接,因此必须启动它们自己的副本?我怎样才能解决这个问题?或者我错过了什么?
这是一个例子。我启用了 X11 转发,似乎一切正常。
[me@host ~]$ gnome-calculator &
[1] 4803
Run Code Online (Sandbox Code Playgroud)
(这里 gcalctool 程序启动并显示到我的删除 X 服务器(Xming))
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
Run Code Online (Sandbox Code Playgroud)
(现在,在远程会话中关闭 gcalctool 应用程序后)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
Run Code Online (Sandbox Code Playgroud)
请注意, dbus-launch 仍处于活动状态。最糟糕的是,这会阻止 SSH 连接正确关闭,直到它被终止。 …
尝试X11通过 SSH Putty/Xming(在选项上启用 X11 转发)访问我的 CentOS 6 x32 小型 Linode VPS。
我的 Windows 机器不是问题,因为它可以与其他 CentOS 服务器一起使用。
X11Forwarding 在 上启用/etc/ssh/sshd_config,但我仍然无法获得 X11 转发。
我正在努力xclock工作,但Can't open display :0.0出现错误。
我也尝试过使用不同的 $DISPLAY 值,例如:0或:10.0
我试过 MobaXterm,连接时收到此消息:
X11 forwarding request failed on channel 0
Run Code Online (Sandbox Code Playgroud) 我有一台家用和工作电脑,家用电脑有一个静态 IP 地址。
如果我从我的工作计算机 ssh 到我的家用计算机,ssh 连接有效,但不显示 X11 应用程序。
在我/etc/ssh/sshd_config家:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)
在工作中,我尝试了以下命令:
xhost + home HOME_IP
ssh -X home
ssh -X HOME_IP
ssh -Y home
ssh -Y HOME_IP
Run Code Online (Sandbox Code Playgroud)
我/etc/ssh/ssh_config在工作:
Host *
ForwardX11 yes
ForwardX11Trusted yes
Run Code Online (Sandbox Code Playgroud)
我~/.ssh/config在工作:
Host home
HostName HOME_IP
User azat
PreferredAuthentications password
ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)
我~/.Xauthority在工作:
-rw------- 1 azat azat 269 Jun 7 11:25 .Xauthority
Run Code Online (Sandbox Code Playgroud)
我~/.Xauthority在家里:
-rw------- 1 azat azat 246 Jun 7 19:03 …Run Code Online (Sandbox Code Playgroud) 我的研究实验室最近添加了一台配备强大 NVIDIA 显卡的服务器,我们希望用它来进行科学计算。由于它不是工作站,我们必须通过 ssh 连接远程运行我们的作业。我们的大多数应用程序都需要对屏幕外缓冲区进行 opengl 渲染,然后在 CUDA 中对结果进行图像分析。
我的初步调查表明 X11 转发是一个坏主意,因为 opengl 渲染将发生在客户端机器上(或者更确切地说是 X11 服务器 - 多么令人困惑的命名约定!)并且在发送我们的大量纹理时会遇到网络瓶颈。我们永远不需要显示输出,所以似乎不需要 X11 转发,但是 Opengl 需要将 $DISPLAY 设置为有效的值,否则我们的应用程序将无法运行。我确定存在执行此操作的渲染农场,但它是如何完成的?我认为这可能是一个简单的 X11 配置问题,但我对它太陌生,不知道从哪里开始。
我们正在运行 Ubuntu 服务器 10.04,没有安装 gdm、gnome 等。但是,安装了 xserver-xorg 包。
这是编程和服务器管理员之间的一个中间地带,但这似乎最终是最相关的地方。
我正在寻找一种方法来确定变量 ' $DISPLAY' 是否正在宣传我们可以实际连接到的 XServer,也就是说,是否所有身份验证等都已到位以允许执行进一步的操作。
理想情况下,我正在寻找返回 true/false 的 shell 端工具,可以在构建脚本中使用它来确定是否应该运行其中的其他测试(我无法控制)。
目前的测试只是检查env变量“ $DISPLAY”,如果它存在,将尝试连接,当连接不起作用时,测试假设测试失败,而不仅仅是显示器无法连接。
我只需要能够做到
if [[ ! can_connect_to_X ]] ; then
unset DISPLAY
fi
Run Code Online (Sandbox Code Playgroud)
为了阻止这些测试有严重的精神问题。
在理想情况下,执行此操作所需的工具应该与 X 客户端库本身一起提供,以免产生特殊的依赖关系,并且能够假设如果该实用程序不存在,我们将无法连接到任何显示器。
root@mazgalici:~# startx
X.Org X Server 1.7.6
Release Date: 2010-03-17
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-28-server i686 Ubuntu
Current Operating System: Linux mazgalici 2.6.18-194.26.1.el5.028stab079.2PAE #1 SMP Fri Dec 17 19:34:22 MSK 2010 i686
Kernel command line: quiet
Build Date: 10 November 2010 11:25:26AM
xorg-server 2:1.7.6-2ubuntu7.4 (For technical support please see )
Current version of pixman: 0.16.4
Before reporting problems, check
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, …Run Code Online (Sandbox Code Playgroud) 从 Mac (10.7.2) 登录到 Linux (Ubuntu 8.04) 时,ssh 转发我的 X11 连接时遇到了一个令人烦恼的新问题。我使用 ssh -X 登录到远程机器并从该 shell 启动基于 X11 的应用程序没有问题。
最近开始发生的事情是,在一段时间后(大约几个小时),来自同一个 shell 的 X11 应用程序的其他调用无法启动,因为转发的显示被阻止(我认为)。例如,在尝试启动 xterm 时,我收到有关错误 DISPLAY 设置的常见消息,例如:
xterm Xt 错误:无法打开显示:本地主机:10.0
但是我在登录时启动的 X11 应用程序仍然运行得很好,使用完全相同的显示 (localhost:10.0),只是它更早启动。
我在 sshd_config 中打开了详细日志记录,我在 /var/log/auth.log 文件中看到了这一点,以响应失败的 xterm 启动尝试:
sshd[22104]:通道 8:打开失败:管理禁止:打开失败
如果我再次 ssh -X 到服务器,启动一个新的 shell 并分配一个新的显示 (localhost:11.0),重复相同的过程:X11 应用程序很早就开始运行,只要我保持打开状态(几天),但几个小时后,我无法从该 shell 启动任何新的。
详细信息:在 Ubuntu 8.04 上运行的 OpenSSH sshd 服务器,显示转发到运行 Lion (10.7.2) 的 Mac,使用默认的 Apple X 服务器。这些系统连接在以太网 LAN 上,它们之间只有一个交换机。两台机器都没有运行防火墙。直到最近(几天前),这个设置才完美运行,所以我不知道下一步该往哪里看。我绝不是 X11 或 SSH 专家,但具有良好的 UNIX/Linux 经验。在客户端或服务器配置中没有任何明显的变化,尽管我尝试更改一些选项来尝试调试它,例如将 sshd_config 的 TCPKeepAlive 设置为 no,并设置“host …