Dav*_*ave 3 linux ssh putty x11-forwarding raspberry-pi
我正在使用 Raspberry Pi 开发机器人,但在 X11 转发方面遇到问题。当我要运行我的脚本时:
sudo python myscript.py
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Putty X11 proxy: Authorisation not recognised
(Imagen Combinada:3642) : Gtk-Warning **: cannot open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)
我正在使用 PuTTY 和 Xming(启用 SSH -> X11 -> 启用 X11 转发)。
有人知道这里会发生什么,我该如何解决?
小智 6
我遇到了同样的问题并找到了解决方案。错误的原因是没有将 MIT-MAGIC-COOKIE-1 传递给根。此文件存储在 ~/.Xauthority 上。你有三个选择。
1)快速修复将加载所有用户环境
$ sudo -E python myscript.py
Run Code Online (Sandbox Code Playgroud)
-E 选项将从用户的主目录加载 root shell 环境。因此,将读取用户的 ~/.Xauthority。然而,这有点蛮力,不推荐用于安全问题。
2)列出密钥并将其加载到root /root/.Xauthority
另一种将密钥直接加载到 root .Xauthority 的方法。
pi@RPi-Dev:~$ xauth list
RPi-Dev/unix:10 MIT-MAGIC-COOKIE-1 5cxxxxxxxxxxxxxxxxxxxxxxxxxxx3d3
pi@RPi-Dev:~$ sudo -s
root@RPi-Dev:/home/pi# xauth add RPi-Dev/unix:10 MIT-MAGIC-COOKIE-1 5c5cxxxxxxxxxxxxxxxxxxxxxxxxxxxd3
Run Code Online (Sandbox Code Playgroud)
3) 设置并传递 XAUTHORITY 环境值。
你可以用 XAUTHORITY 指定 .Xauthority 文件,但是,默认情况下它没有设置,只是从 ~/.Xauthority 加载文件。所以,以这种方式给 sudo 选项。
$ sudo XAUTHORITY=${HOME}/.Xauthority python myscript.py
Run Code Online (Sandbox Code Playgroud)
root 将获得 XAUTHORITY=/home/(user)/.Xauthority,并相应地读取文件。
归档时间: |
|
查看次数: |
44168 次 |
最近记录: |