当前位置: 首页 > article >正文

如何在 Ubuntu 上设置 SSH X11 转发并访问远程图形界面

1. 前言

当我们在远程服务器上运行需要图形界面的程序时,通常需要使用 SSH 来连接服务器并通过 X11 转发将远程的图形界面显示到本地机器。本文将详细介绍如何使用 SSH 命令和相关的配置,来通过 X11 转发在 Ubuntu 上远程访问服务器的图形界面。

2. SSH X11 转发概述

X11 是一个用于网络透明的图形用户界面协议。它允许你通过网络将一个图形应用的窗口从远程主机显示到本地。为了实现这一目标,SSH 提供了 X11 转发功能。我们可以通过 ssh -Xssh -Y 命令启用这一功能。

2.1 为什么选择 -X-Y

  • -X:启用 X11 转发,但不允许不受信的 X11 转发。
  • -Y:启用 X11 转发,并允许不受信的 X11 转发(适用于一些复杂的图形应用)。

3. 操作步骤

3.1 生成和使用密钥文件

首先,我们需要通过 SSH 密钥连接到远程服务器。你提到你已经有了一个密钥文件 /home/tangyipeng/.ssh/hzrobotembodiedAI.pem,确保密钥文件权限正确,执行以下命令:

chmod 600 /home/tangyipeng/.ssh/hzrobotembodiedAI.pem

3.2 连接到远程服务器并启用 X11 转发

你可以通过以下命令连接到远程服务器,并启用 X11 转发:

ssh -X -i /home/tangyipeng/.ssh/hzrobotembodiedAI.pem root@36.134.9.205

命令解析

  • -X:启用 X11 转发。
  • -i /home/tangyipeng/.ssh/hzrobotembodiedAI.pem:指定 SSH 私钥文件,避免使用密码登录。
  • root@36.134.9.205:远程服务器的 IP 地址和用户名(此处使用的是 root 用户)。

3.3 测试 X11 转发是否成功

连接成功后,执行以下命令以测试 X11 转发是否配置正确:

xclock

如果看到一个时钟窗口弹出,表示 X11 转发配置成功。此时,远程的图形界面应该能够在本地显示。

3.4 设置 DISPLAY 环境变量

如果你在连接后没有看到图形界面,可能是因为 DISPLAY 环境变量没有设置。你可以手动设置它:

export DISPLAY=:0

或者,如果你使用的是 Xvfb 虚拟显示环境:

export DISPLAY=:99

这将确保远程图形应用通过正确的显示服务器渲染。

3.5 使用虚拟显示 Xvfb

如果你没有物理显示器或者希望以无头模式运行图形应用,可以使用 Xvfb 启动一个虚拟显示服务器:

sudo apt install xvfb
Xvfb :99 -screen 0 1280x1024x24 &
export DISPLAY=:99

这将启动一个虚拟显示,设置 DISPLAY 环境变量为 :99,并使所有的图形应用通过虚拟显示渲染。

4. 常见问题及解决方案

4.1 GLFW 初始化失败错误

如果你遇到如下错误:

[Error] [carb.windowing-glfw.plugin] GLFW initialization failed.
[Error] [carb.windowing-glfw.plugin] GLFW window creation failed!
[Error] [carb.gym.plugin] Failed to create Window in CreateGymViewerInternal

这种错误通常是由于没有合适的图形环境配置。可以尝试以下步骤:

  1. 使用 Xvfb 启动虚拟显示(如上所述)。
  2. 检查是否安装必要的图形库
sudo apt install libgl1-mesa-glx
  1. 确保 DISPLAY 环境变量正确设置

4.2 远程应用没有图形界面显示

如果应用没有图形界面显示,可以尝试以下排查步骤:

  1. 确认 ssh -Xssh -Y 参数是否正确。
  2. 在本地安装 X11 相关的依赖:
sudo apt install xauth xorg openbox
  1. 检查远程服务器上的 X11 配置。确保 /etc/ssh/sshd_config 文件中的 X11Forwarding 设置为 yes
X11Forwarding yes
X11UseLocalhost no

然后重启 SSH 服务:

sudo systemctl restart ssh

5. 总结

通过 SSH X11 转发,你可以轻松地访问远程服务器上的图形应用并在本地显示。以下是本教程的关键步骤和命令:

  • ssh -X -i /home/tangyipeng/.ssh/hzrobotembodiedAI.pem root@36.134.9.205:连接到远程服务器并启用 X11 转发。
  • export DISPLAY=:99:确保远程图形应用通过虚拟显示渲染。
  • xclock:测试 X11 转发是否成功。

在出现问题时,可以使用 Xvfb 启动虚拟显示,或检查环境变量、图形库等配置。希望本文对你在远程使用图形应用的工作中有所帮助!


http://www.kler.cn/a/403562.html

相关文章:

  • Redis密码设置与访问限制(网络安全)
  • 嵌入式面试八股文(九)·FreeRTOS与Linux的区别与相同点、多进程与多线程的区别、为什么项目使用多线程
  • 面试小结(一)
  • Linux-服务器辨别实体机OR虚拟机
  • 排序算法:直接插入排序,希尔排序,选择排序,快速排序,堆排序,归并排序
  • 初始ArkUI
  • Quality minus junk论文阅读
  • PyTorch基础学习01_创建张量常见属性数据转换图像
  • vue+node+Express+xlsx+emements-plus实现导入excel,并且将数据保存到数据库
  • 002创建ASP.NET Core项目-数据库优先
  • C++算法练习-day41——700二叉搜索树中的搜索
  • RFdiffusion EuclideanDiffuser类解读
  • 缓存cache
  • Apache和HTTPS证书的生成与安装
  • 用遗传算法优化的网络学习改进算法
  • 斯坦福UC伯克利开源突破性视觉场景生成与编辑技术,精准描绘3D/4D世界!
  • MySQL:联合查询(2)
  • PH热榜 | 2024-11-19
  • 组件注册:局部(app.vue,import,components,组件标签)全局(main.js,import,vue.component,-组件标签)
  • CRM系统安全性排名:数据保护能力评估
  • 深入探索Golang的GMP调度机制:源码解析与实现原理
  • 【Linux】Namespace
  • Linux的权限
  • HarmonyOS Next 关于页面渲染的性能优化方案
  • C语言菜鸟入门·关键字·void的用法
  • 初学 flutter 问题记录