sshd_config 中的 X11DisplayOffset

Ali*_*ice 4 ssh

X11DisplayOffset对 sshd_config 中的字段感到非常困惑

偏移意味着从正确的位置偏移lubuntu - 显示偏移。查看图片 - 问 Ubuntu

但是,当ssh -X user@host在远程桌面上打开“firefox”时,
浏览器可以正确显示而没有偏移。

有什么作用X11DisplayOffset

ste*_*ver 6

X11DisplayOffset不是指显示几何结构内的偏移量 - 它涉及识别通过 SSH 连接启动的显示客户端应该使用哪个显示客户端,以便不干扰本地显示。来自man sshd_config

 X11DisplayOffset
         Specifies the first display number available for sshd(8)'s X11
         forwarding.  This prevents sshd from interfering with real X11
         servers.  The default is 10.
Run Code Online (Sandbox Code Playgroud)

X Windows 的架构允许 X 服务器管理多个显示器。通常在具有单个本地用户的独立工作站上,您只需要处理单个显示 - 通常编号为 0 并且通常称为:0,例如在环境变量分配中,例如DISPLAY=:0. 但是在可能运行多个 X 会话的服务器上(例如,用户通过 VNC 远程访问,或在不同虚拟终端上的单独 X 会话)可能有多个显示,标记为:1:2等。

当 X11 通过 SSH 转发被添加到混合中时,这就增加了对额外的唯一显示号码的要求(以便通过 SSH 连接建立隧道的 X 客户端被定向到正确的远程显示服务器)。为了避免与本地显示器发生冲突,在显示器编号方案中添加了一个偏移量,以便远程显示器编号为:10:11:12...


pa4*_*080 5

该指令X11DisplayOffset$DISPLAY环境变量相关。来自man sshd_config

X11DisplayOffset
             Specifies the first display number available for sshd(8)'s X11 forwarding.  
             This prevents sshd from interfering with real X11 servers. The default is 10.
Run Code Online (Sandbox Code Playgroud)

因此,使用默认设置,当您-X在 ssh 命令中使用该选项时,$DISPLAYenvvar 将被分配如下值(注意没有-X-Y变量将被取消设置):

$ echo $DISPLAY
localhost:10.0
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • localhost( hostname) 是运行 X 服务器的计算机的名称。省略的主机名表示本地主机。

  • 10( D) 是序列号。如果有多个显示器连接到一台计算机,则可能会有所不同。

  • 0( S) 是屏幕编号。一个显示器实际上可以有多个屏幕。