나는 두 개의 raspi를 가지고 있으며 SSH 및 X11 전달을 사용하여 서로 연결합니다 ssh pi@[pi's IP] -X -v
. X11 전달을 사용하여 원격 GUI를 표시하는 것은 많은 응용 프로그램에서 잘 작동합니다. 그러나 하나의 응용 프로그램에서는 작동하지 않습니다. 데모 애플리케이션입니다 ADI TOF SDK. "SSH -X" 세션에서 이 작업을 시작하면 오류가 발생합니다(일부 초기화 단계를 통과한 후).
X11 connection rejected because of wrong authentication.
Gtk-WARNING **: 13:11:31.083: cannot open display: localhost:10.0
pi@aditofpi:~/Desktop $ ./aditof-demo.sh
I0604 13:11:28.104044 28301 device_enumerator_raspberry.cpp:16] Looking for devices on the target
I0604 13:11:28.105119 28301 device_enumerator_raspberry.cpp:49] Looking at: /dev/video0 for an eligible TOF camera
I0604 13:11:28.106060 28301 system_impl.cpp:31] System initialized
I0604 13:11:28.106182 28301 camera_96tof1.cpp:47] Initializing camera
I0604 13:11:28.106228 28301 local_device.cpp:118] Opening device
I0604 13:11:28.309844 28301 calibration.cpp:230] EEPROM calibration data size 65044 bytes
I0604 13:11:31.062580 28301 camera_96tof1.cpp:64] Camera initialized
I0604 13:11:31.069535 28301 local_device.cpp:213] Starting device
debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from ::1 52008
debug1: channel 1: new [x11]
debug1: confirm x11
X11 connection rejected because of wrong authentication.
debug1: channel 1: free: x11, nchannels 2
Unable to init server: Could not connect: Connection refused
(aditof-demo 1.2.0:28301): Gtk-WARNING **: 13:11:31.083: cannot open display: localhost:10.0
이는 다른 응용 프로그램에 적용되므로 일반적인 X11 전달 문제는 아닙니다. 예를 들어 테스트에는 xclock 및 geany를 사용하십시오. 이는 aditof-demo 애플리케이션에 다음이 있다는 사실과 관련이 있을 수 있습니다.여러 GUI 창? 로컬에서 애플리케이션을 시작할 때 이를 볼 수 있습니다. X11 전달이 이 문제를 처리할 수 있습니까(응용 프로그램에는 여러다른윈도우)? 또한 -X 대신 -Y를 사용하여 신뢰할 수 있는 SSH 세션을 시작해 보았지만 동일한 결과가 나왔습니다. 두 시스템 모두의 내 ssh_config에는 다음 블록이 포함되어 있습니다. 괜찮아 보입니까?
Host *
# ForwardAgent no
ForwardX11 yes
ForwardX11Trusted yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no
X11 포워딩이 이 특정 애플리케이션뿐만 아니라 다른 애플리케이션에서도 작동하는 이유를 아시나요?
업데이트: pi 사용자와 sudo 사용자로 aditof 응용 프로그램을 시작해 보았습니다. 어느 쪽도 작동하지 않으며 출력도 동일합니다. 그런데 geany로 테스트해보니 실제로 차이가 있었습니다. 사용자 pi로는 작동하지만 sudo로는 작동하지 않습니다. sudo와 마찬가지로 geany도 aditif 애플리케이션과 동일한 오류로 인해 실패합니다. 글쎄요, 이상해요.
pi@aditofpi:~/Desktop $ geany
debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from ::1 56062
debug1: channel 1: new [x11]
debug1: confirm x11
debug1: channel 1: FORCE input drain
debug1: channel 1: free: x11, nchannels 2
pi@aditofpi:~/Desktop $ sudo geany
debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from ::1 56066
debug1: channel 1: new [x11]
debug1: confirm x11
X11 connection rejected because of wrong authentication.
debug1: channel 1: free: x11, nchannels 2
Unable to init server: Could not connect: Connection refused
Geany: cannot open display
답변1
방금 이게 진짜인줄 알았네요아니요위에서 언급한 특정 어플리케이션과 관련된 내용인데, 프로그램을 실행하면 모든 어플리케이션에서 나타나는 일반적인 문제입니다 sudo
! 나언제나이 오류는 세션 X11 connection rejected because of wrong authentication.
에서 무언가를 시작할 때 발생합니다 . 사용자와 동일한 응용 프로그램을 시작하면 항상 잘 작동합니다. 처음에 이것을 보지 못한 이유는 aeditof 애플리케이션이 .sh 파일에 숨겨져 있기 때문입니다. 이 작업을 사용자 pi로 시작하지만 .sh 파일 내부에는 다음이 있습니다.ssh -X
sudo
pi
sudo
#!/bin/sh
cd /home/pi/aditof_sdk/build/examples/aditof-demo
sudo ./aditof-demo
다음으로 변경한 후:
#!/bin/sh
cd /home/pi/aditof_sdk/build/examples/aditof-demo
./aditof-demo
그리고 이렇게 하세요:
pi@raspberrypi:~ $ ssh pi@aditofpi'sID -X
pi@aditofpi'sID's password:
Linux aditofpi 4.19.86-v7l+ #1 SMP Tue Dec 3 17:21:04 EET 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jun 9 15:09:15 2020 from aditofpi'sID
pi@aditofpi:~ $ ~/Desktop/aditof-demo.sh
지원서 편집이 시작됩니다! :) 중급 네! xclock 또는 geany와 같은 다른 응용 프로그램과 동일한 동작입니다. 사용자 pi로 작동하지만 sudo로 시작하면 작동하지 않고 실패합니다 X11 connection rejected because of wrong authentication.
. 그러나 그것은 또 다른 주제입니다.