ssh:X11 转发请求在通道 0 上失败(Linux->Mac)

ssh:X11 转发请求在通道 0 上失败(Linux->Mac)

(我是从 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_configMac 上并重新启动 sshd。我也在Linux机器ForwardX11 yes上设置了。安装在 Mac 上(在 中,在我的中),尽管登录期间的错误消息声称相反。但错误仍然存​​在。/etc/ssh/ssh_configxauth/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)仍然不能运行。

相关内容