The remote SSH server rejected X11 forwarding request

一、服务器端配置调整

  1. 修改SSH服务配置文件

    • 编辑/etc/ssh/sshd_config文件,确保以下参数已启用:
      X11Forwarding yes X11DisplayOffset 10 AllowTcpForwarding yes
      保存后执行systemctl restart sshd重启服务。
  2. 安装必要依赖包

    • 在CentOS/RHEL系统运行:
      yum install xorg-x11-xauth -y
      Ubuntu/Debian系统使用:
      apt-get install xauth -y
      此操作可解决90%的X11转发拒绝问题

二、客户端工具设置

  1. XShell配置检查

    • 取消勾选「隧道」选项卡中的转发X11连接到选项(适用于无需图形界面场景)。
    • 若需X11转发,需确保客户端已安装X Server(如Xming/VcXsrv)。
  2. PuTTY等其他工具

    • 在「Connection > SSH > X11」中启用Enable X11 forwarding,并设置X display locationlocalhost:0

三、验证与调试步骤

操作 预期效果  
服务端安装xorg-x11-xauth 消除依赖缺失导致的警告  
客户端禁用X11转发选项 强制跳过图形转发需求  
重启SSH服务 使配置生效  

四、高级问题排查

  1. SELinux干扰

    • 临时关闭SELinux测试:
      setenforce 0
      若问题解决,需调整SELinux策略或保持宽容模式。
  2. 用户权限问题

    • 确保~/.Xauthority文件权限为600:
      chmod 600 ~/.Xauthority
      权限错误会导致X11认证失败。

操作流程图

 
出现警告 → 检查服务端X11Forwarding配置 → 安装xauth → 重启SSH → 成功?结束 ↓ 失败 检查客户端转发设置 → 禁用或配置X Server → 成功?结束 ↓ 失败 排查SELinux/文件权限 → 解决

注意事项

  • 云服务器限制‌:部分云厂商默认禁用X11转发,需通过控制台修改安全组规则。
  • 跨平台兼容性‌:Windows客户端需额外配置X Server,macOS/Linux原生支持XQuartz。