You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH访问树莓派时允许root(或sudo)权限下的X11转发?

如何通过SSH访问树莓派时允许root(或sudo)权限下的X11转发?

我之前也碰到过完全一样的问题——普通用户跑X程序毫无障碍,一用sudo就弹出X11授权错误,折腾了好一会儿才摸清楚门道,给你分享两个靠谱的解决办法:

临时解决办法(单次生效)

适合偶尔需要用sudo启动X程序的场景,核心是把普通用户的X11授权信息同步给root:

  • 先确认当前的DISPLAY变量,执行命令:
    echo $DISPLAY
    你应该会得到类似localhost:10.0的输出
  • 接着把普通用户的X授权信息导入root环境,执行:
    sudo xauth add $(xauth list $DISPLAY)
    或者更简单粗暴点,直接把普通用户的授权文件复制到root家目录:
    sudo cp ~/.Xauthority /root/
  • 现在再试sudo qbittorrent,应该就能正常启动了

永久解决办法(每次登录都生效)

如果经常需要用sudo跑X程序,修改sudo配置让它自动保留X相关环境变量会更省心:

  • 用visudo编辑sudoers文件(一定要用visudo,直接编辑可能导致sudo失效):
    sudo visudo
  • 在文件里找到Defaults env_keep这一行,把DISPLAY和XAUTHORITY两个变量加进去,修改后大概是这样:
    Defaults env_keep += "DISPLAY XAUTHORITY"
  • 保存退出(visudo里按Ctrl+O保存,Ctrl+X退出)
    之后不管什么时候用sudo启动X程序,都不用再手动处理授权了

为啥会出现这个错误?

简单说,X11转发时你的普通用户会有一个.Xauthority文件用来验证身份,证明你有权访问本地X服务器(也就是PuTTY的X11代理)。但root用户默认没有这个授权文件,所以PuTTY的X11代理不认它的请求,就会弹出“授权不识别”的错误,进而连不上指定的DISPLAY。

备注:内容来源于stack exchange,提问作者Jimmy Bungalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:18:08