当前位置:首页 > 下载列表 > Remote X11

Remote X11 1.5.0

介绍:RemoteX11:在VisualStudioCode中远程运行X窗口应用程序RemoteX11扩展旨在帮助用户在远程工作环境中,通过VisualStudioCode启动X窗口应用程序,并在本地机器上显示。为此,用户需要在远程机器上安装该扩展,并确保本地机器上运行X服务器。对于通过SSH连接的用户,还需在本地机器上安装RemoteX11(SSH)扩展(通常会自动安装)。注意:
分类:   下载/工具 · 工具软件 来源:  点击进入 版本:  1.5.0
日期:  2025-04-25 人气:   大小:  
标签:   x11
点击下载 相关下载
功能介绍

介绍:

Remote X11

Remote X11:在Visual Studio Code中远程运行X窗口应用程序

Remote X11扩展旨在帮助用户在远程工作环境中,通过Visual Studio Code启动X窗口应用程序,并在本地机器上显示。为此,用户需要在远程机器上安装该扩展,并确保本地机器上运行X服务器。对于通过SSH连接的用户,还需在本地机器上安装Remote X11 (SSH)扩展(通常会自动安装)。

注意: 使用SSH连接时,可能需要调整一些设置。请查看下面的“认证设置”部分,因为该扩展无法使用VS Code的SSH认证,且不支持所有SSH认证方法。

对于Windows主机,Remote X11扩展仅与VcXsrv进行了测试,但Cygwin/X、Xming和X410等其他服务器也应能正常工作。目前不支持Windows远程机器。

对于SSH连接,如果远程机器未安装Bash,您需要更改remoteX11.SSH.displayCommand设置,并提供一个能够打印DISPLAY变量值的命令。如果使用端口转发,还可能需要更改remoteX11.SSH.port设置。请参阅下面的详细信息。

访问控制

对于容器和WSL 2,您需要与X服务器授权或禁用访问控制。

对于SSH和WSL 1目标,连接到X服务器将来自本地机器,因此无需为这些目标配置任何内容。

X11转发

Remote - SSH扩展目前不支持启用X11转发(查看问题 #267)。为了解决这个问题,Remote X11 (SSH)扩展会在后台创建一个启用转发的SSH连接到远程机器。

该扩展目前仅支持公钥认证。 有关认证设置的更多详细信息,请参阅下文。

扩展设置

设置更改通常会在短暂延迟后自动应用。如果设置更改导致DISPLAY变量更改,您可能需要重新启动任何终端。

您还可以使用F1 > Remote X11: Reconnect Display来强制更新。

  • remoteX11.display - 要连接的显示编号。如果您的X服务器使用的是0以外的显示,请更改此设置。
  • remoteX11.screen - 要连接的屏幕编号。
  • remoteX11.container.enable - 为容器设置DISPLAY?
  • remoteX11.SSH.enable - 启用X11转发并为SSH目标设置DISPLAY?
  • remoteX11.SSH.authenticationMethod:
    • keyFile - 使用remoteX11.SSH.privateKey指定的私钥文件进行认证。不支持带有密码的密钥。
    • agent - 使用ssh-agent获取密钥。此方法支持带有密码的密钥。
  • remoteX11.SSH.agent - ssh-agent的Unix套接字或Windows命名管道的名称。设置为pageant以在Windows上使用Pageant。如果留空,默认为Windows 10的OpenSSH代理(\\.\pipe\openssh-ssh-agent)或其他平台上的SSH_AUTH_SOCK环境变量。仅在remoteX11.SSH.authenticationMethod为agent时使用。
  • remoteX11.SSH.privateKey - 您的SSH私钥文件的绝对路径。仅在remoteX11.SSH.authenticationMethod为publicKey时使用。
  • remoteX11.SSH.XAuthPermissionLevel - 在ssh -X(不受信任)和ssh -Y(受信任)权限之间选择。
  • remoteX11.SSH.X11ConnectionType - 在TCP和Unix套接字之间选择X11连接。默认在Windows主机上使用tcp,否则使用unix。
  • remoteX11.SSH.X11Socket - 选择要连接的Unix套接字。屏幕编号将附加到此设置的末尾。
  • remoteX11.SSH.displayCommand - 打印DISPLAY=后跟换行符的命令,其中是DISPLAY变量的值。注意,此文本中不得有任何空格。连接到不支持默认命令的机器时,请更改此设置。
  • remoteX11.SSH.timeout - 等待SSH shell响应上述命令的秒数。使用0以无限期等待。
  • remoteX11.SSH.host - 设置用于连接到SSH服务器的主机名或IP地址。如果Remote X11尝试连接到错误的地址,请使用此设置。
  • remoteX11.SSH.port - 设置用于连接到SSH服务器的端口。如果Remote X11尝试连接到错误的端口,请使用此设置。
  • remoteX11.WSL.enable - 为WSL目标设置DISPLAY?

认证设置

Remote X11目前仅支持公钥认证。您必须使用ssh-keygen生成公钥/私钥对,并将您的公钥添加到服务器的~/.ssh/authorized_keys文件中。

RemoteX11可以配置两种获取密钥的方式:

私钥文件

如果remoteX11.SSH.authenticationMethod设置为keyFile,Remote X11将读取remoteX11.SSH.privateKey文件指定的文件作为您的私钥。默认为~/.ssh/id_rsa,因此如果您的文件名不同,必须更改此设置。

此方法不支持带有密码的私钥! 有关支持密码的方法,请参阅下文。

SSH代理

如果remoteX11.SSH.authenticationMethod设置为agent,Remote X11将使用ssh-agent读取通过ssh-add添加的密钥。请参阅VS Code文档以获取启用SSH代理的说明。

要将您的密钥添加到SSH代理中,请在本地机器上打开终端并运行:

ssh-add <path/to/private/key>

如果您的密钥带有密码,您将被提示输入密码。之后,您可以无需重新输入密码即可登录。

在Windows上,您还可以通过将remoteX11.SSH.agent设置更改为pageant来使用Pageant代替内置的OpenSSH代理。

故障排除

扩展是否已安装?

在远程工作区中,打开扩展视图(Ctrl X)并检查“Remote X11”是否已在远程机器上安装并启用。如果您使用的是SSH连接,还要检查“Remote X11 (SSH)”是否已在本地机器上安装并启用。

检查日志

在远程工作区中,打开输出窗格(Ctrl Shift U),并使用右上角的下拉列表检查“Remote X11”的日志。如果一切正常,日志应显示类似于以下内容:

Setting up display for remote "ssh-remote".
Connecting to SSH user@address port 22
DISPLAY = localhost:11.0

如果没有,错误消息可能会帮助您找出问题。一些常见错误的解决方案列在下文。

SSH地址和端口是否正确?

默认情况下,Remote X11使用SSH_CONNECTION变量来确定到SSH服务器的地址和端口。如果您使用端口转发等功能,这可能会不正确。

检查日志中的“connecting to SSH ...”消息,并检查地址和端口是否正确。如果不正确,请使用remoteX11.SSH.host和/或remoteX11.SSH.port设置进行修复。请注意,这些设置必须在远程机器上设置,因此请打开远程工作区并使用设置的Remote选项卡更改它们。

您的X服务器是否在运行?

如果您在Remote X11日志中看到DISPLAY = ...,但运行GUI应用程序时没有任何显示,请确保您的X服务器在本地机器上运行。

还要确保remoteX11.display设置与您的X服务器设置的显示编号匹配。

您是否使用了正确的连接类型?

Windows上的X11服务器通常使用TCP连接,基于Unix的系统上的服务器通常使用Unix套接字。当remoteX11.SSH.X11ConnectionType设置为auto时,它将相应地在TCP和Unix套接字之间进行选择。如果自动选择不正确,您可以手动更改为使用TCP或Unix套接字。

SSH是否能够找到显示?

如果您使用SSH且在日志中没有看到DISPLAY = ...,还要检查“Remote X11 (SSH)”的日志是否有错误。日志末尾附近应该有一个打印DISPLAY变量的命令。如果此命令失败,请尝试使用用户(而不是远程)设置中的remoteX11.SSH.displayCommand设置更改它。

无法解析privateKey:检测到加密的OpenSSH私钥,但未提供密码

默认认证方法不支持带有密码的密钥。您必须使用SSH代理。有关更多详细信息,请参阅上面的认证设置

所有配置的认证方法均失败

检查您的认证设置。这通常意味着您的公钥不在远程服务器的authorized_keys文件中,或者您尚未将私钥添加到SSH代理中。有关更多详细信息,请参阅上面的认证设置

ENOENT: \.\pipe\openssh-ssh-agent

Windows的SSH代理可能未运行。从开始菜单打开“服务”,并确保OpenSSH Authentigation Agent服务正在运行。

需要授权,但未指定授权协议

您的X服务器启用了访问控制。请与服务器进行授权或禁用访问控制。有关更多详细信息,请参阅https://en.wikipedia.org/wiki/X_Window_authorization。

错误:无法打开显示:... 在WSL 2上

如果您在从WSL 2运行应用程序时遇到此错误,连接可能被Windows防火墙阻止。您可以编辑防火墙规则以允许它:

  1. 从开始菜单打开Windows Defender防火墙,然后从左侧边栏选择“高级设置”。这应该会打开一个标题为“Windows Defender防火墙高级安全性”的窗口。

  2. 在左侧选择“入站规则”。

  3. 找到具有以下设置的规则:

    • 名称: 您的X服务器的名称,例如“VcXsrv windows xserver”
    • 操作: 阻止
    • 协议: TCP
  4. 右键点击规则并选择“属性”。

  5. 在“常规”选项卡上,将操作更改为“允许连接”:

    防火墙规则,常规选项卡

  6. 在“范围”选项卡上,将“远程IP地址”更改为“这些IP地址”,并添加以下值:

    • 172.16.0.0/12
    • 192.168.0.0/16

    防火墙规则,范围选项卡

  7. 选择“确定”保存您的更改。

有关更多详细信息,请参阅https://github.com/microsoft/WSL/issues/4139。

其他问题

如果您遇到任何其他错误并且无法找出原因,请在https://github.com/ChaosinaCan/vscode-remote-x11/issues创建问题,并发布您的日志,我会尽力帮助。

如果您使用SSH,请启用remoteX11.SSH.verboseLogging设置,以将有关SSH连接的技术详细信息记录到“Remote X11 (SSH)”日志中,并在问题报告中包含这些信息。这对于查找服务器不支持您的私钥使用的算法等问题很有用。

版本声明
本文转载于:https://marketplace.visualstudio.com/items?itemName=spadin.remote-x11 如有侵犯,请联系study_golang@163.com删除
查看更多
课程推荐
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    204次学习
  • MySQL数据管理之备份恢复案例解析视频教程
    MySQL数据管理之备份恢复案例解析视频教程
    《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
    160次学习
  • MySQL索引优化解决方案
    MySQL索引优化解决方案
    本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
    182次学习
  • 极客学院Docker视频教程
    极客学院Docker视频教程
    Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
    243次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    127次学习
  • JavaScript极速入门
    JavaScript极速入门
    本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......
    431次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码