X-!Snaps! 未启动

X-!Snaps! 未启动

我通过 SSH(从 Windows)连接到我的 Ubuntu Disco 服务器。

我可以运行 X-Apps,例如,我的 LXPanel 现在就显示出来。我安装了 Firefox(通过apt),它显示了。

我安装了几个X-snap,它们都显示如下错误:

PuTTY X11 proxy: Unsupported authorisation protocol
QXcbConnection: Could not connect to display localhost:10.0

唯一运行的是 VS Code。这是一个“经典”的 snap。

有人能给我一个主意吗?

答案1

于是我又试了一次,现在我自己找到了答案。显然,我第一次尝试时无法用谷歌搜索到这个...

问题在于 Xauthority,因为 snap 程序不知道这一点。该问题已讨论这里有多种解决方案,包括

XAUTHORITY=$HOME/.Xauthority /snap/bin/mysnap

答案2

您的 ssh 服务器身份验证 cookie 对可能是主要问题

远程控制(8)手册页:

如果文件 ~/.ssh/rc 存在,sh(1) 将在读取环境文件之后但在启动用户的 shell 或命令之前运行它。它不得在 stdout 上产生任何输出;必须改用 stderr。如果正在使用 X11 转发,它将在其标准输入中接收“proto cookie”对(并在其环境中显示 DISPLAY)。脚本必须调用 xauth(1),因为 sshd 不会自动运行 xauth 来添加 X11 cookie。

因此,您可以将以下内容添加到 /etc/ssh/sshrc(手册中也说明了):

if read proto cookie && [ -n "$DISPLAY" ]; then
    if [ 'echo $DISPLAY | cut -c1-10' = 'localhost:' ]; then
    # X11UseLocalhost=yes
    echo add unix:'echo $DISPLAY |
    cut -c11-' $proto $cookie
    else
    # X11UseLocalhost=no
    echo add $DISPLAY $proto $cookie
    fi | xauth -q - 
fi 

相关内容