概括
当我在 MacBook 上的 Ubuntu 虚拟机中时,我可以通过 SSH 从 MacBook 进入远程 Linux 机器,但不能从 OSX 进入。我寻求有关如何让 OSX 与 X11 转发配合使用的指导,并怀疑这是 OSX Mavericks 的问题。在我升级之前,它曾经在 Mountain Lion 上运行,所以我认为我错过了一步。
请注意,这不是升级到 OS X Mavericks 后 X11/XQuartz 不会自动启动吗?就像我格式化并全新安装 Mavericks 一样
X11 服务器 - Ubuntu 桌面
# This is the /etc/ssh/sshd_config file, trimmed down
# Relevant lines:
X11Forwarding yes
X11UseLocalhost yes
X11DisplayOffset 10
# Maybe relevant:
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PasswordAuthentication yes # I didn't want to copy the rsa key into ubuntu VM so I accessed the server by password authentication rather than by rsa key.
TCPKeepAlive yes
我可以毫无问题地 ssh 进入这台机器。
X11 客户端 - OSX Mavericks(不工作)
我安装了石英2.7.5,不确定我在 OSX Mountain Lion 上使用的是哪个版本。
# edited /etc/ssh_config to prevent timeout issues
ForwardX11Timeout 596h
在 .ssh/config 文件中我有
Host remotegossamer
User joe
port 22
Hostname 55.55.55.55 # (edited.. I use no-ip as I have a dynamic ip)
ForwardX11 yes
ForwardX11Trusted yes # This gets rid of the warning: "Warning: untrusted X11 forwarding setup failed: xauth key data not generated"
当我 ssh 登录时收到警告
> ssh remotegossamer
Warning: No xauth data; using fake authentication data for X11 forwarding.
Welcome to Ubuntu 13.10 (GNU/Linux 3.11.0-15-generic x86_64)
...
当我尝试打开 X11 窗口时失败
joe@gossammer:~$ firefox&
[1] 12195
joe@gossammer:~$ connect 127.0.0.1 port 6010: Connection refused
(process:12195): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
connect 127.0.0.1 port 6010: Connection refused
connect 127.0.0.1 port 6010: Connection refused
Error: cannot open display: localhost:10.0
^C
[1]+ Exit 1 firefox
Glib-CRITICAL 是 Firefox 的一个错误,它存在于 ubuntu 和 osx 客户端中,这是服务器的问题,可以忽略。
的结果echo $DISPLAY
是localhost:10.0
或localhost:11.0
取决于我是先使用当前机器还是第二台机器 ssh 登录。断开两台机器的连接并以相反的顺序 ssh 登录无效;ubuntu 客户端在 10 和 11 上成功,OSX 在两者上都失败。
我读了这篇文章,端口 6010 是正确的,因为它从端口 6000 开始并以 10 为增量计数,如服务器的 sshd_config 中提到的那样。
所以我很困惑为什么 OSX 无法连接......
我应该注意,当我使用 ssh 从 Mountain Lion 进入时,XQuartz 应用程序会启动 - 现在它不会
X11 客户端 - Ubuntu 桌面(在 OSX Mavericks 上的虚拟机中)
要将 ubuntu VM 配置为通过 ssh 进入服务器:
# I edited the /etc/ssh/ssh_config to have:
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
然后我使用 ssh 登录:
ssh -Y [email protected]
并且没有收到任何警告。然后我做了:
> firefox&
它在 X11 中打开,很好,所以这是 OSX 的问题/我设置 OSX 的方式的问题
所以
我在 OSX Mavericks 上设置 X11 时是否遗漏了什么?
答案1
尝试以下命令(一旦您登录 OS X):
export XAUTHORITY=/home/your_name/.Xauthority
然后尝试一些无害的 X 应用程序,例如xeyes
。如果它有效,您可以将该语句放入.bashrc
文件中。