web-dev-qa-db-ja.com

エラーPuTTY X11プロキシ:承認が認識されません

Raspberry Piを使用してロボットを開発していますが、X11転送に問題があります。スクリプトを次のように実行する場合:

   Sudo python myscript.py

エラーが発生します:

   PuTTY X11 proxy: Authorisation not recognised
   (Imagen Combinada:3642) : Gtk-Warning **: cannot open display: localhost:10.0

XmingでPuTTYを使用しています(SSHを有効にする-> X11-> X11転送を有効にする)。

ここで何が起こっているのか、どうすれば解決できるのか誰かが知っていますか?

2
Dave

私は同じ問題を抱えていて、解決策を見つけました。エラーの理由は、MIT-MAGIC-COOKIE-1をルートに渡していないことです。このファイルは〜/ .Xauthorityに保存されます。 3つのオプションがあります。

1)クイックフィックスは、すべてのユーザー環境をロードします

$ Sudo -E python myscript.py

-Eオプションは、ユーザーのホームディレクトリからルートシェル環境をロードします。したがって、ユーザーの〜/ .Xauthorityが読み取られます。ただし、これはややブルートフォースであり、セキュリティ上の懸念からはあまりお勧めできません。

2)キーを一覧表示し、ルート/root/.Xauthorityにロードします

キーをルート.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

)XAUTHORITY環境値をセットアップして渡す。

XAUTHORITYを使用して.Xauthorityファイルを指定できますが、デフォルトでは設定されておらず、〜/ .Xauthorityからファイルをロードするだけです。したがって、Sudoオプションをこのように指定します。

$ Sudo XAUTHORITY=${HOME}/.Xauthority python myscript.py

rootはXAUTHORITY =/home /(user)/。Xauthorityを取得し、それに応じてファイルを読み取ります。

4
Chihaya

Sudoが問題の原因である可能性があります。確認するには、SudoなしでXアプリケーション(xeyesなど)を実行できます。 Ifこれが機能する場合、xauth Cookieをルートに追加することにより、pythonスクリプトを実行できます。

dave@raspberrypi$ xauth list
raspberrypi/unix:10  MIT-MAGIC-COOKIE-1  1e656e1......2d6d5a

dave@raspberrypi$ Sudo su 
# paste in the output from 'xauth list' below:
root@raspberrypi$ xauth add raspberrypi/unix:10  MIT-MAGIC-COOKIE-1  1e656e1......2d6d5a

dave@raspberrypi$ Sudo python myscript.py
0
sjdenny