使用x11 forwarding显示X Windows

本文详细介绍如何在Linux服务器上配置sshd服务端及客户端参数,实现通过SSH进行X11转发。包括服务端sshd_config文件的设置、客户端配置文件的修改方法,以及如何通过命令行参数调整转发模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行Linux开发时,我们常常需要通过ssh访问linux服务器。

除了命令行登录外,我们还借助与Cygwin、X-Win32、Xmanager、NoMachine、Xming等软件在本地Windows上建立X Server,显示远端的X Window。

更近一步,我们常常通过ssh,在服务器之间进行跳转。

本文主要介绍如何配置sshd服务端以及客户端参数,来获得通过ssh进行X11转发。

想要使ssh通道获得X11的转发功能,需要在服务端和客户端同时进行设置。

  • 对于用工具通过ssh直连服务器来说,工具是客户端(而且很多工具都自动设置好了客户端的配置),我们只需关注服务器的配置。
  • 对于用工具登录跳板机(一台或几台作为跳板的中间服务器)再间接登录服务器的情况来说,跳板机本身是既作为服务器又作为客户端的,需要两方面的配置。

服务端

服务端的配置位于/etc/ssh/sshd_config中,对该文件配置以保证服务端sshd服务可以进行X11转发。

确保该文件包含以下选项:

X11Forwarding yes 

修改该文件后需重启sshd服务:

service sshd restart 

客户端

客户端有两种方法保证ssh可以进行X11转发:

修改/etc/ssh/ssh_config或~/.ssh/config文件

前者是全局配置,后者为当前用户配置,二者都存在的情况下,后者会覆盖前者的配置。

有两个选项需要注意:

  • ForwardX11

  • ForwardX11Trusted

这两个选项的作用是互相有影响的,表现为:

ForwardX11 ForwardX11Trusted ssh_mode
no no disabled
no yes disabled
yes no untrusted
yes yes trunsted

对于ssh_mode的解释:

  • disabled: 无法进行X11转发,但可以通过ssh命令参数来提升获得转发的能力。
  • untrusted:通过不可信连接进行X11转发,该模式下,当前客户端默认为不可信客户端,它不信任sshd服务器。因此该客户端在服务器上的权限受限,并且无法通过该客户端修改X11显示的其他客户端。(当然,其他客户端也不能修改当前客户端!)该模式下的客户端,也可以通过为ssh命令配置-Y参数提升为可信客户端。
  • trusted: 通过可信连接进行X11转发,该模式下,当前客户端充分信任sshd服务器,并拥有X11的完全控制权,这意味着它可以对其他显示X11的客户端进行修改。该模式下的客户端,也可以通过为ssh命令配置-X参数降低为不可信客户端。
通过为ssh命令指定参数

为ssh命令指定特定的参数会影响当前客户端的模式。这种方式会覆盖前面配置文件中的设置。

ssh_args ssh_mode
ssh disabled
ssh -X untrusted
ssh -Y trunsted

最后,许多客户端无法在untrusted模式下正常工作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30338315/viewspace-2144514/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30338315/viewspace-2144514/

<think>好的,我需要帮助用户了解如何在Windows上配置SSH以使用X11转发。首先,我需要回忆一下相关的步骤和可能的工具。根据用户提供的引用内容,特别是引用[3]和[4],里面提到了在Windows使用Tabby终端和VcXsrv作为X11服务器,还有安装ssh以及配置服务器端的设置。 首先,用户可能需要安装一个X11服务器软件。引用里提到VcXsrv,这是一个常用的选择。我需要确保步骤中包括下载和安装VcXsrv,并正确配置它的设置,比如禁用访问控制,这样X11转发才能正常工作。 接下来是SSH客户端的选择。用户可能使用PuTTY或者像Tabby这样的现代终端。引用[3]用了Tabby,所以可能需要说明如何在Tabby中启用X11转发选项。同时,如果用户使用OpenSSH命令行,也需要修改SSH配置文件,通常是~/.ssh/config,添加ForwardX11 yes之类的设置。 然后,服务器端的配置也很重要。根据引用[2]和[4],服务器需要安装xauth和相关的X11工具,并且SSH配置文件中需要启用X11Forwarding。可能需要检查/etc/ssh/sshd_config中的X11Forwarding是否设为yes,并重启sshd服务。 还要确保用户知道如何测试X11转发是否成功,比如运行xeyes或者xclock这样的简单图形程序来验证。如果出现连接问题,可能需要检查防火墙设置,X11服务器的配置是否正确,以及SSH客户端和服务器端的日志信息。 另外,引用[1]提到SSH是加密协议,X11转发是安全特性,所以需要强调安全性,比如使用SSH密钥认证,保持软件更新等。 需要将这些步骤分点说明,确保逻辑清晰,用户能一步步跟随操作。同时,要提醒常见的错误和解决方法,比如权限问题、配置错误等。最后,生成相关问题,帮助用户进一步了解相关主题,比如优化X11转发性能或处理常见错误。</think>### 如何在 Windows 上配置 SSH 使用 X11 转发 #### **步骤 1:安装 X11 服务器(Windows 端)** Windows 本身不支持 X11 协议,需安装第三方 X11 服务器: 1. **下载 VcXsrv** 访问 [VcXsrv 官网](https://sourceforge.net/projects/vcxsrv/) 下载并安装。 2. **启动 XLaunch** 安装完成后运行 **XLaunch**,配置如下: - 选择 "Multiple windows" → 设置 Display number 为 `0` - 勾选 "Disable access control"(关键步骤,否则转发失败)[^3][^4] - 保存配置方便后续快速启动。 #### **步骤 2:配置 SSH 客户端(Windows 端)** 根据 SSH 客户端类型选择配置方式: - **使用 OpenSSH(命令行)** 修改 `~/.ssh/config` 文件,添加以下内容: ```plaintext Host * ForwardX11 yes ForwardX11Trusted yes ``` 若使用 `ssh` 命令连接时,需添加 `-Y` 参数: ```bash ssh -Y username@server_ip ``` - **使用 Tabby/PuTTY 等工具** 在连接配置中启用 **X11 Forwarding** 选项,并指定 Display 地址为 `localhost:0`。 #### **步骤 3:配置 SSH 服务端(Linux 端)** 确保服务端支持 X11 转发: 1. **安装必要组件** ```bash sudo yum install xorg-x11-xauth xorg-x11-fonts-* # CentOS sudo apt install xauth xorg # Debian/Ubuntu/Deepin[^4] ``` 2. **修改 SSH 配置** 编辑 `/etc/ssh/sshd_config`,确认以下参数: ```plaintext X11Forwarding yes X11UseLocalhost no # 允许远程 X11 连接 ``` 重启 SSH 服务: ```bash sudo systemctl restart sshd ``` #### **步骤 4:测试 X11 转发** 1. 启动 VcXsrv,确保任务栏显示 X11 服务器图标。 2. 通过 SSH 连接服务器并运行图形程序(如 `xclock`): ```bash xclock ``` 若 Windows 端弹出时钟窗口,则配置成功[^2]。 #### **常见问题** - **"Error: Can't open display"** 检查 VcXsrv 是否禁用访问控制,或尝试设置 `export DISPLAY=localhost:0`。 - **字体缺失** 在服务端安装完整字体包:`xorg-x11-fonts-*`。 - **连接超时** 关闭 Windows 防火墙或添加 X11 服务器到白名单。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值