文章目录
问题
当时使用ssh连接远程主机时,有时需要运行远程主机带UI的程序,如matplotlib、opencv、ros-rviz等,那就需要开启ssh的远程UI功能。
本人远程ssh控制主机的情况:一个台式机,一个云服务器,一个笔记本电脑,台式机是被控对象,云服务器用于frp内网穿透,笔记本电脑用于ssh控制台式机。
关于内网穿透的内容就不赘述了,本文介绍在已配置好内网穿透的情况下,vscode使用SSH远程控制时显示远程主机运行的软件界面。
环境配置
1、台式机
安装必要的功能包
shell
sudo apt update
sudo apt install x11-apps vim -y
编辑sshd文件
shell
sudo vim /etc/ssh/sshd_config
配置文件中确保以下没有被注释(无#),且yes或no正确对应
bash
PermitRootLogin yes
X11Forwarding yes
X11UseLocalhost no
PasswordAuthentication yes
重启ssh
shell
sudo systemctl restart sshd
2、笔记本电脑
安装mobaxterm:https://mobaxterm.mobatek.net/
打开mobaxterm,并启用一个终端

允许SSH云服务器的XXX界面连接过来,运行以下命令:
bash
xhost + <云服务器ip>

vscode配置,注意增加ForwardX11 yes ForwardX11Trusted yes,如下所示:
shell
Host xsf-server-aliyun
HostName xxx.xxx.xxx.xxx # 云服务器IP
User xsf-server
Port XXX
ForwardX11 yes
ForwardX11Trusted yes
运行测试
在笔记本电脑通过ssh远程的终端输入以下命令测试:
shell
xeyes # 或者xclock

测试OK!!!
参考: