X通过SSH从Mac转发到Linux机器


9

我需要在远程Mac机器上运行Mac应用程序,并将其显示在本地Linux机器的X服务器上(Internet上的许多文章似乎都在详细介绍如何以相反的方式进行操作)。

$ ssh -X mac-box
$ cd /Developer/Applications/Xcode.app
$ ./Contents/MacOS/Xcode
Sat Oct  3 20:41:26 mac-box.local Xcode[15634] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
^C
  1. 我的$DISPLAY变量似乎为空。它应该是什么样子,以便转发正常工作?
  2. 我可以完全以这种方式运行OSX应用程序吗?

Answers:


6

如果Mac的Aqua是X,则无需运行X(XQuartz)即可在Mac上启动其他X程序。

所以:不,我想你不能这样做。


但是,为了帮助您入门,我首先尝试将真正的X程序转发到您的Linux机器:

  • 在Mac上:如果尚未安装XQuartz,请安装XQuartz(例如OS X 10.6 DVD上可选安装的XQuartz 2.3.4,或从XQuartz项目下载最新版本)。

  • 在您的Mac上:使用或使用Apple的Enabling X11 Forwarding中的命令更改X11Forwarding noX11Forwarding yes(并确保#该行前面没有哈希())。这还将确保自动设置变量。sudo vi /private/etc/sshd_configsedDISPLAY

  • 在您的Linux机器上:

    ssh -Y user @ mac-box
    xterm
    

(然后,某些后续步骤可能包括Googling for Xephyr(或更旧的Xnest)。并且,如果您遇到键盘问题:Google xmodmap,或xev用于调试。或字体问题:Google xfsxset +fp tcp/mac-box:7100。但是我怀疑您是否可以这种方式运行Aqua程序。)


1
不幸的是你是对的。即使可以运行xterm,也无法通过SSH运行Xcode和iPhone模拟器。另外,我不需要在股票10.6安装中安装XQuartz。
Alex B

@AlexB在过去的十年中有什么变化吗?
Muhammad bin Yusrat,

4

听起来您的主要目标是在Linux机器上查看正在运行的Mac应用程序。Arjan是正确的,X转发对此不起作用。

您应该在“系统偏好设置”的“共享”窗格中启用“屏幕共享”。这将打开VNC服务器。在Linux机器上使用VNC客户端,您将能够看到Mac桌面。本文介绍如何在Mac端进行设置(步骤1-3),继续(设置太多)有关设置dyndns和在Airport基站中打开端口的问题,然后在底部进行一点设置客户端(步骤20-21)。


而且,还有许多程序仅共享一个应用程序(而不是整个桌面)。我认为甚至可以使用最新的Skype跨平台做到这一点。(我不确定Skype是否还允许人控制远程计算机,而不是仅窥视其屏幕。)
Arjan

我希望我可以避免使用它。目前看来,VNC仍然是唯一的选择。
Alex B

-2

只需使用

su -lm <usrname-to-proxy-for>

进入不会发生X11问题的外壳。有关'-m'选项的详细信息,请参见手册页。


-m保持环境不变。调用的外壳程序是您的登录外壳程序,并且不进行目录更改。-这与问题有什么关系?
Arjan 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.