我可以登录以使用
ssh -X Hostip
Run Code Online (Sandbox Code Playgroud)
但是当我运行命令 xclock 它给我这个错误
Error: Can't open display: localhost:11.0
Run Code Online (Sandbox Code Playgroud)
我使用检查我的显示值
echo $DISPLAY
Run Code Online (Sandbox Code Playgroud)
结果是
localhost:11.0
Run Code Online (Sandbox Code Playgroud)
并且在 sshd_config 文件中将 X11 转发设置为 YES
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)
有什么建议我在这里想念的吗?
小智 21
使用-Y. 从 ssh 上的手册页:
-Y 启用受信任的 X11 转发。受信任的 X11 转发不受 X11 安全扩展控制的约束。
如果您仍然遇到问题,您可以尝试设置$DISPLAY为您本地机器的 IP:
$ export DISPLAY='<ip_address>:11.0'
Run Code Online (Sandbox Code Playgroud)
将其设置为
$ export DISPLAY='127.0.0.1:11.0'
Run Code Online (Sandbox Code Playgroud)
人们在从 Mac OS X ssh'ing时似乎普遍存在这个问题。您可能还想设置
X11UseLocalhost no
Run Code Online (Sandbox Code Playgroud)
在这种情况下也是如此。
小智 8
这对我有用:
改变
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)
到
X11UseLocalhost no
Run Code Online (Sandbox Code Playgroud)
感谢https://unix.stackexchange.com/a/12772/61349他们的诊断说明。
确保您是 ssh 客户端使用-v标志请求 X11 转发
ssh example.com -X -v
Run Code Online (Sandbox Code Playgroud)
并查找特定消息:
Run Code Online (Sandbox Code Playgroud)debug1: Requesting X11 forwarding with authentication spoofing.
另一个明显的问题标志是缺少DISPLAY为您设置的环境变量 beign。如果它为空白/未设置,则有问题。至少根据上面提到的同一篇文章,这些变量是自动为您设置的。
我正在使用 SSH Control Master 我的 ssh 连接,如下所示:
Host <hostname>
ControlMaster auto
ControlPath ~/.ssh/control/%r@%h:%p
ControlPersist 10m
Run Code Online (Sandbox Code Playgroud)
我之前的 ssh 连接没有请求 X11Firwarding,因此ssh没有使用未来调用的选项。所以对我来说,
ssh-X只是被完全忽略了
如果您没有看到“Requesting X11 Forwarding”,但您确实看到了复用器重用会话;
Run Code Online (Sandbox Code Playgroud)debug1: auto-mux: Trying existing master debug1: mux_client_request_session: master session id: 10
然后,您需要退出该连接的当前 ControlMaster,并使用 -X/-Y 标志重新连接。
停止您的 ControlMaster
ssh -O check <hostname>Run Code Online (Sandbox Code Playgroud)Master running (pid=2758)(这将使用 ControlMaster 退出所有活动连接)
ssh -O exit <hostname>Run Code Online (Sandbox Code Playgroud)Exit request sent.
| 归档时间: |
|
| 查看次数: |
193246 次 |
| 最近记录: |