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
) 为屏幕编号。一个显示器实际上可以有多个屏幕。