远程 xterm 因错误事件 BadAccess 而终止

远程 xterm 因错误事件 BadAccess 而终止

我正在使用 登录到远程服务器ssh -x,然后运行xterm​​。每当尝试运行键盘铃时,我都会收到以下消息并且 xterm 退出:

xterm: warning, error event received:
X Error of failed request:  BadAccess (attempt to access private resource denied)
  Major opcode of failed request:  104 (X_Bell)
  Serial number of failed request:  468
  Current serial number in output stream:  469

昨晚我回家时一切都运行正常,今天早上我回来时却出现故障。据我所知,什么都没有改变。

我尝试过在本地和远程关闭铃声 ( xset b off)。远程关闭时,我收到类似的错误,但对于X_ChangeKeyboardControl。本地关闭时,xterm仍会因相同的错误而退出。

我查看了我的系统,没有找到xconf.d目录。

uname -a返回以下内容:

Linux <node-name> 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

答案1

(布拉德福德的回答是正确的,但要扩展他所写的内容)

这是默认 ssh 客户端配置对 X11 转发的限制所致。如果您有访问权限,请将ForwardX11 yes和添加ForwardX11Trusted yes到系统/etc/ssh/ssh_config,这将默认为系统上的所有用户启用所需的行为。

否则,ssh -Y在连接到相关主机时调用。

ssh_config(5) 手册页对该设置的描述如下ForwardX11

转发X11指定 X11 连接是否将自动通过安全通道和 DISPLAY 设置重定向。参数必须是“yes”或“no”。默认值为“no”。

应谨慎启用 X11 转发。能够绕过远程主机上的文件权限(针对用户的 X11 授权数据库)的用户可以通过转发的连接访问本地 X11 显示。如果同时启用了 ForwardX11Trusted 选项,攻击者可能能够执行诸如按键监控之类的活动。

ssh_config(5) 手册页对该设置的描述如下ForwardX11Trusted

ForwardX11可信如果此选项设置为“是”,远程 X11 客户端将可以完全访问原始 X11 显示。

如果将此选项设置为“否”,则远程 X11 客户端将被视为不受信任,并被阻止窃取或篡改属于受信任 X11 客户端的数据。此外,用于会话的 xauth(1) 令牌将设置为 20 分钟后过期。在此时间之后,远程客户端将被拒绝访问。

默认值为“否”。

有关对不受信任的客户端施加的限制的完整详细信息,请参阅 X11 SECURITY 扩展规范。

我在连接到 Redhat Linux 服务器(服务器)的 FreeBSD 13.1 系统(客户端)上验证了该问题并进行了修复。

注意 sshd_configX11Forwarding默认启用。

答案2

我遇到了这个问题。

我相信解决方法是您还需要通过使用选项而-Y不是或在文件中-X使用来启用“受信任的”X11 转发。ForwardX11Trusted yes.ssh/config

相关内容