sshd_config 中的 X11DisplayOffset

sshd_config 中的 X11DisplayOffset

X11DisplayOffset我对sshd_config 中的字段非常困惑

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

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

做什么X11DisplayOffset

答案1

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.

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

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

答案2

该指令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.

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

$ echo $DISPLAY
localhost:10.0

在哪里:

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

  • 10( D) 为序列号。如果一台电脑连接了多个显示器,则序列号可能会有所不同。

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

相关内容