标签: x11-forwarding

如何在 WSL2 上设置工作 X11 转发

当从 WSL1 迁移到 WSL2 时,很多事情都会发生变化;显然这也适用于 X11 转发。
为了在 Windows 10 上使用 WSL2 的 X11 转发,我需要采取哪些步骤,就像我在 WSL1 上所做的那样?

x11 x11-forwarding windows-10 windows-subsystem-for-linux wsl-2

124
推荐指数
8
解决办法
12万
查看次数

尝试在 Centos (Rhel 7.5) 上运行 google-chrome 时无法打开 X 显示

我需要使用 SSH 在虚拟机上远程运行 Google Chrome。我不想要 xforwarding - 我想利用虚拟机上可用的 GPU。当我尝试运行时,出现 google-chrome以下错误:

[19615:19615:0219/152933.751028:ERROR:browser_main_loop.cc(1512)] Unable to open X display.
Run Code Online (Sandbox Code Playgroud)

我试图将我的 DISPLAY env 值设置为各种值:

export DISPLAY=localhost:0.0
export DISPLAY=127.0.0.1:0.0
export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)

我还尝试用不同的值替换 abowe 示例中的 0.0 。

ForwardX11 no在 /etc/ssh/sshd_config 中尝试设置这样的目标:

systemctl isolate multi-user.target
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时,sudo lshw -C display我得到以下输出:

   *-display
       description: VGA compatible controller
       product: Hyper-V virtual VGA
       vendor: Microsoft Corporation
       physical id: 8
       bus info: pci@0000:00:08.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: vga_controller bus_master rom
       configuration: driver=hyperv_fb latency=0
       resources: …
Run Code Online (Sandbox Code Playgroud)

ssh centos x11-forwarding

22
推荐指数
1
解决办法
5万
查看次数

在没有"--net host"的SSH连接的服务器上可靠地在Docker容器中运行X应用程序

如果没有Docker容器,可以直接使用SSH X11转发(ssh -X)在远程服务器上运行X11程序.当应用程序在服务器上的Docker容器内运行时,我试图让同样的东西工作.当使用-X选项SSH连接到服务器时,会设置X11隧道,并且环境变量"$ DISPLAY"会自动设置为"localhost:10.0"或类似内容.如果我只是尝试在Docker中运行X应用程序,我会收到此错误:

Error: GDK_BACKEND does not match available displays
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是实际将$ DISPLAY传递给容器,其中包含"-e"选项,如下所示:

docker run -ti -e DISPLAY=$DISPLAY name_of_docker_image
Run Code Online (Sandbox Code Playgroud)

这有帮助,但它没有解决问题.错误消息更改为:

Unable to init server: Broadway display type not supported: localhost:10.0
Error: cannot open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

在搜索网络后,我发现我可以做一些xauth魔术来修复身份验证.我添加了以下内容:

SOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
chmod 777 $XAUTH
docker run -ti -e DISPLAY=$DISPLAY -v $XSOCK:$XSOCK -v $XAUTH:$XAUTH \ 
  -e XAUTHORITY=$XAUTH name_of_docker_image
Run Code Online (Sandbox Code Playgroud)

但是,这仅在将" --net host " 添加到docker命令时才有效:

docker run …
Run Code Online (Sandbox Code Playgroud)

x11 ssh x11-forwarding docker

19
推荐指数
1
解决办法
6365
查看次数

如何在PyCharm SSH会话中启用X11转发?

问题

我正在尝试通过PyCharm SSH终端启用X11转发,这可以通过执行

"Tools -> Start SSH session..."
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎没有办法像我在shell中那样指定标志来启用X11 Forwarding:

ssh -X user@remotehost
Run Code Online (Sandbox Code Playgroud)

你知道一些聪明的方法吗?


当前的脏解决方案

我发现唯一的脏黑客是用X11转发打开外部ssh连接,而不是手动更新环境变量DISPLAY.

例如,我可以在我的外部ssh会话上运行:

vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0
Run Code Online (Sandbox Code Playgroud)

而不是在我的PyCharm终端上设置:

export DISPLAY=localhost:10.0
Run Code Online (Sandbox Code Playgroud)

如果我想从GUI运行程序,请更新运行/调试配置中DISPLAY变量.

但是,我真的不喜欢使用外部ssh终端并手动更新DISPLAY变量的解决方案,我确信有更好的方法来实现这一点!

任何帮助将非常感激.


Ps制作别名:

alias ssh='ssh -X'
Run Code Online (Sandbox Code Playgroud)

在我的.bashrc中没有强制PyCharm启用X11转发.

ssh pycharm x11-forwarding

18
推荐指数
2
解决办法
4924
查看次数

x11使用paramiko转发

我正在尝试运行一个命令paramiko,应该能够打开一个X窗口.我正在使用的脚本如下:

import paramiko                                    

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect('192.168.122.55', username='user', password='password')
transport = ssh_client.get_transport()
session = transport.open_session()

session.request_x11()
stdin = session.makefile('wb')
stdout = session.makefile('rb')
stderr = session.makefile_stderr('rb')
session.exec_command('env; xterm')
transport.accept()

print 'Exit status:', session.recv_exit_status()
print 'stdout:\n{}'.format(stdout.read())
print 'stderr:\n{}'.format(stderr.read())
session.close()
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行上面的脚本时,我得到了这个输出:

Exit status: 1
stdout:
SHELL=/bin/bash
XDG_SESSION_COOKIE=8025e1ba5e6c47be0d2f3ad6504a25ee-1347286654.617967-1932974971
SSH_CLIENT=192.168.122.1 58654 22
USER=user
MAIL=/var/mail/user
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/user
LANG=en_US.UTF-8
SHLVL=1
HOME=/home/user
LOGNAME=user
SSH_CONNECTION=192.168.122.1 58654 192.168.122.55 22
DISPLAY=localhost:10.0
_=/usr/bin/env

stderr:  
xterm: Xt error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

如果我在终端中运行以下命令:

ssh -X user@192.168.122.55 'env; xterm'
Run Code Online (Sandbox Code Playgroud)

然后我得到相同的环境变量(虽然有些端口发生了变化),所以我说我的环境是正确的.但是,我仍然缺少一些可以paramiko …

python x11 paramiko x11-forwarding

15
推荐指数
2
解决办法
5806
查看次数

ssh X11转发不起作用

我一直试图从我的笔记本电脑上运行X11端口转发工作.我无法弄清楚为什么它不起作用.

当我尝试运行xterm时收到此消息:

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

我不知道这是否相关,但是当我登录时,我收到此消息:

/usr/bin/xauth:  timeout in locking authority file /home/sphillips/.Xauthority
Run Code Online (Sandbox Code Playgroud)

我想知道问题是我的笔记本电脑上的本地用户是skp还是这台服务器上的用户名是sphillips.我已经能够使用X11转发与我使用相同skp登录的其他计算机一起工作.

此外,X11端口转发从使用Xming和Putty的Windows机器到同一服务器.我必须手动将DISPLAY变量配置为IP地址并显示0.0,但它可以工作.

我在我的机器上运行了一个xhost +,试图绕过任何安全问题.那还是行不通的.

在服务器上,我检查配置:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

在我的机器上:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
[sudo] password for skp: 
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

我的服务器是RedHat Enterprise Linux 6,我的笔记本电脑是Fedora 15.

任何人都可以给我任何想法,试图让我的笔记本电脑上的SSH X11转发工作吗?

ssh x11-forwarding

13
推荐指数
2
解决办法
5万
查看次数

错误:无法打开显示:localhost:0.0 - 尝试从CentOS 6.2 64位打开Firefox并在Win7上显示

我在Windows7机器上,我试图让firefox在centOS机器上打开,但是显示在我当前的屏幕上.firefox在终端中输入时,我收到以下错误:

Error: cannot open display: localhost:0.0
Run Code Online (Sandbox Code Playgroud)

为了设置显示器,我使用了命令

$ export DISPLAY=localhost:0.0
Run Code Online (Sandbox Code Playgroud)

有些网站建议使用以下内容,但它也不起作用:

$ export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)

我正在使用PuTTY,我Enable X11 forwarding选中了复选框,XMing正在Windows上运行.此外,centOS文件上的sshd_config似乎也正确设置:

$ cat /etc/ssh/sshd_config |grep -i x11
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)

我查看了很多页面并搜索了StackOverflow,但没有一个能够以任何方式帮助我.先感谢您.

x11 x11-forwarding

13
推荐指数
2
解决办法
11万
查看次数

Xt错误:如果使用默认的DISPLAY,则无法打开显示

概观

我试图让XQuartz在OSX上工作,所以我可以通过Docker进行X11转发.我按照这里的说明操作.我相信我的问题可以仅通过第一部分来回答,但为了以防万一(为了避免XY问题),我也提供了第二部分.

安装

我已经通过自制软件安装了它brew cask install xquartz.然后我open -a XQuartz开始吧.

本地xterms

测试它,如果我尝试打开它xterm,它不起作用:

MacBook-Pro:opencv-gui csaftoiu$ xterm
xterm: Xt error: Can't open display: /private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0
Run Code Online (Sandbox Code Playgroud)

但是,伪文件存在:

MacBook-Pro:opencv-gui csaftoiu$ echo $DISPLAY
/private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0
MacBook-Pro:opencv-gui csaftoiu$ ls -alh $DISPLAY
srw-rw-rw-  1 csaftoiu  wheel     0B May  6 21:12 /private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0
Run Code Online (Sandbox Code Playgroud)

可以通过XQuartz打开一个xterm.然后:

bash-3.2$ echo $DISPLAY
:0
Run Code Online (Sandbox Code Playgroud)

此值也适用于常规OSX:

$ DISPLAY=:0 xterm
# opens xterm, waits for it to finish
$
Run Code Online (Sandbox Code Playgroud)

以下不起作用,不知道为什么基于这里的答案:

xterm: Xt error: Can't open display: localhost:0
MacBook-Pro:opencv-gui …
Run Code Online (Sandbox Code Playgroud)

x11 macos x11-forwarding docker xquartz

13
推荐指数
2
解决办法
2万
查看次数

连接到远程服务器时,VS代码远程x11无法获取DISPLAY

我使用 Windows VS 代码和此扩展“远程 SSH”、“远程 X11”、“远程 X11 (SSH)”来连接远程服务器并从远程服务器获取图形。

我运行 VcXsrv、Pageant。如果我直接连接 Pageant,X11 转发就可以工作。如果我在远程服务器中设置“export DISPLAY=localhost:10.0”,它甚至可以在 VS code 终端中工作。因此,除了 Remote X11 之外,所有功能都有效,它无法设置 DISPLAY 变量,并显示以下日志: Failed to get DISPLAY: Error: Invalid cygwin unix socket path

windows remote-server x11-forwarding visual-studio-code vscode-extensions

12
推荐指数
2
解决办法
4万
查看次数

使用 mobaxterm x11 转发时键盘布局错误

我正在使用 MobaXTerm 连接到远程机器,因此使用其 x11 转发来使用图形应用程序。

然而,尽管我的所有语言环境都设置得很好(法国),但与 X 服务器一起使用的所有应用程序都使用 qwerty 布局。

centos x11-forwarding centos7 mobaxterm

10
推荐指数
1
解决办法
2535
查看次数