(我是从 stackoverflow 指出的,很抱歉交叉发帖)
我正在尝试从 Linux 计算机 (Linux Mint 19.2) ssh 到我的 MacBook Pro(操作系统 10.14.6 左右),以便在 Mac 上启动 Firefox 等应用程序,并在我的 Linux 客户端(键盘)上打开窗口Mac 坏了,机器只能远程访问)。但是,该窗口打不开,并且X11 forwarding request failed on channel 0
一登录就收到错误消息,这表明存在一般 ssh 问题。我已经尝试了有关该主题的许多帖子中建议的各种方法,但没有任何效果。我已经设定
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
在/etc/ssh/sshd_config
Mac 上并重新启动 sshd。我也在Linux机器ForwardX11 yes
上设置了。安装在 Mac 上(在 中,在我的中),尽管登录期间的错误消息声称相反。但错误仍然存在。/etc/ssh/ssh_config
xauth
/opt/local/bin
$PATH
以下是 ssh 在详细模式下输出的部分内容:
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/thomas/.ssh/id_rsa
debug1: Trying private key: /home/thomas/.ssh/id_dsa
debug1: Trying private key: /home/thomas/.ssh/id_ecdsa
debug1: Trying private key: /home/thomas/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
Password:
debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.2.100 ([192.168.2.100]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: exec
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = de_DE.UTF-8
debug1: Remote: No xauth program; cannot forward X11.
X11 forwarding request failed on channel 0
正如我所说,xauth
在 Mac 上:
:~> which xauth
/opt/local/bin/xauth
所以我不知道为什么没有找到它。任何想法如何解决这一问题?能够在 Mac 上打开应用程序对我来说非常重要。托马斯
答案1
Mac 版的 Firefox 根本不使用 X11;它使用 MacOS 的本机 API (Cocoa)。因此它不能通过 X11 转发使用,因为它不是 X11 应用程序。
为了修复该错误:
debug1: Remote: No xauth program; cannot forward X11.
您需要再添加一行/etc/ssh/sshd_config
:
XauthLocation /opt/local/bin/xauth
然后你可能需要重新启动该sshd
服务:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
之后,您应该能够通过 X11 转发与您的 Mac 建立 SSH 连接,并能够运行任何X11应用将其显示窗口转发到 SSH 客户端。
但恐怕还是不允许你转发本机 MacOS 应用程序一样的方法。要远程访问它们,您必须启用 Mac 的屏幕共享服务并使用 VNC 客户端应用程序连接到 Mac。
答案2
继菲利普的评论我添加了这一行XAuthLocation /opt/local/bin/xauth
,/etc/ssh/sshd_config
解决了X11转发的一般问题。然而,尽管“经典”X11 程序现在可以运行,但其他程序(例如 Firefox)仍然不能运行。