服务器开启 SSH X11-forward

本文最后更新于:2022年8月26日 下午

在 ssh 连接到服务器后,经常会有需要获取并展示服务器图像的需求,而 ssh 其实带有支持图形界面传输的功能,本文记录开启方法。

问题复现

  • 通过 SSH 连接到服务器后,需要获取服务器弹出的界面,那么就需要开启服务器的 X11
  • 此时登录时显示 X11 状态:

1
X11-forwarding : ✘ (disabled or not supported by server)

实现思路

  • 实现图形传输需要打通 X11 服务,实现上分为两步

    • 在服务器端安装 X11 并在 SSH 配置中开启 X11 相关开关

    • 客户端访问服务器时开启 X11 传输配置

      有时客户端访问无法开启 X11 通道,那么也可以将服务器的 Display 变量指定到客户端的 IP:端口 上,并开启其他工具接收

具体方法

服务器端配置 ssh

安装 ssh 服务
1
2
sudo apt update
sudo apt install openssh-server
启动 ssh 服务
1
sudo service ssh start
修改 sshd 配置

此处仅介绍开启 X11 相关配置,登录配置略过

  • 修改 /etc/ssh/sshd_config
1
2
3
4
5
6
AddressFamily inet

AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

安装 xorg

  • apt 安装 xorg
1
2
3
sudo apt install xorg # ubuntu; for centos, xorg-x11-xauth
touch /root/.Xauthority
xauth add localhost/unix:10 MIT-MAGIC-COOKIE-1 $(mcookie)
  • 重启 ssh 服务
1
service ssh restart

完成 X11 开启

  • 重新 MobaXterm SSH 登录服务器,X11 连接正常

  • 使用 CMD SSH 时可以加入参数 -Y/-X 实现类似功能:
1
ssh -Y root@192.198.10.31 -p 5656

参考资料


服务器开启 SSH X11-forward
https://www.zywvvd.com/notes/system/linux/add-x11-for-server/add-x11-for-server/
作者
Yiwei Zhang
发布于
2022年8月26日
许可协议