我遇到了一个奇怪的问题。当我使用 ssh 登录到我的服务器时,它会在那里启动 Firefox,理想情况下它应该在那台机器上启动 Firefox。但是,它启动的是我的计算机上的 Firefox,而不是客户端的 Firefox。为什么会发生这种情况?我使用这个登录到服务器
ssh -X username@ip
后firefox
答案1
使用该-X
标志,您将启用 X11 转发。这意味着当 ssh 服务器配置相同时...
# cat /etc/ssh/sshd_config | grep X11
X11Forwarding yes
X11DisplayOffset 10
...您正在将窗口从目标机器转发到本地机器。因此 Firefox 确实在目标机器上启动,但它显示在本地机器上。
答案2
当firefox
启动时(在远程系统上),它想要使用 X 服务器来显示自身。它通过其环境中的 DISPLAY 变量找到要使用的 X 服务器。通过使用命令-X
上的选项ssh
,您告诉ssh
在远程会话中设置 DISPLAY 变量以将 X 连接转发回本地 X 服务器(“转发...后退?”),以便远程系统上的内容firefox
显示在本地系统上。
要验证,pgrep firefox
在每个系统上执行,甚至pkill -9 firefox
。