我一直在使用 X11 转发从远程服务器转发剪贴板内容。
当我尝试使用 X11 从一台 GUI Linux 计算机转发到另一台时,我注意到一些奇怪的事情。假设机器 A 通过 ssh 连接到机器 B。
我可以在任何机器上发出以下命令来检查其剪贴板内容
xclip -selection clipboard -o
当我在连接到的A
ssh 提示符上发出它时,我看到相同的剪贴板内容。A
B
B
但是,如果我在机器的 GUI 会话上发出它,那么我会看到不同的内容!
这是否意味着该机器B
有两个 X11 会话?一个用于 GUI,另一个是我通过 ssh 进入时创建的A
?
由于在 Linux 上一切都是文件,那么这些各自会话的文件位于哪里?
答案1
当您转发 X11 连接时,您授予远程系统对本地 X11 会话的访问权限(通过 SSH)。因此,当您从 A 连接到 B 并启用 X11 转发时,您在该 SSH 会话中运行的程序将连接到 A 上的 X11 会话。这解释了为什么xclip
在 A 上和从 A 到 B 的 SSH 会话中显示相同的内容。
B 上的 X11 会话是独立的,不连接到 A 或您的 SSH 会话。
有两个 X11 会话,但不在 B 上:一个在 A 上,一个在 B 上。
X11 会话“实时”在 X11 服务器中,它们不存储在文件中。