X와 연결을하려면 무차별 대입을 원한다고 가정 해 봅시다.
서버에서 명령을 이미 실행하고 있다고 가정합니다 (X가 실행되는 곳). 그렇지 않으면 먼저 작동하도록하고 클라이언트에서 'ssh -X user @ server를 사용하십시오').
xauth 명령을 실행하는 몇 가지 방법이있을 수 있습니다. 예를 들어 'sudo'를 사용하고 있지만 환경 변수가 손실되거나 변경 될 수 있습니다. DISPLAY 및 XAUTHORITY 환경 변수를 보존해야합니다. 이 경우 테스트하려면 명령을 실행하는 것과 같은 방식으로 'echo $ XAUTHORITY'를 실행할 수 있지만 해당 명령을 실행하기 전에 환경 변수를 확장하지 않아야합니다. 예를 들어, sudo bash -c 'echo "$ XAUTHORITY"'를 사용하여 sudo를 실행 한 후 XAUTHORITY가 실제로 무엇인지 확인하십시오. 사라진 경우 sudoers 파일에 무언가를 추가해야 할 수도 있습니다.
결국 서버에서 액세스하려는 사용자로 다음 명령을 실행하십시오.
xauth info
여기에는 사용될 '권한 파일'이 표시됩니다 (기본적으로, 루트의 경우 /root/.Xauthority 또는 /home/theuser/.Xauthority와 같은 것). 올바른 .Xauthority 파일이 표시되면 실제로 XAUTHORITY 환경 변수에 대해 걱정할 필요가 없습니다 (실제로 해당 파일의 비표준 위치를 조작하려는 경우를 제외하고는 실제로 그것이 언제인지 알 수 없습니다) ).
해당 파일을 제거하십시오 (존재하는 경우).
rm /root/.Xauthority
/root/.Xauthority
사례에 맞는 올바른 XAUTHORITY 파일로 교체하십시오 .
다시 작성하지만 비어 있습니다 (많은 명령에 필요함).
touch /root/.Xauthority
이 시점에서 이전에 잘못된 MIT-MAGIC-COOKIE-1 이 있더라도 프로토콜 지정 안 됨 오류가 발생 합니다 . X 서버가 현재 사용중인 권한 파일을 찾으십시오.
ps aux | grep Xorg
이것은 다음과 같이 보여야합니다.
root 1153 0.0 1.0 149560 44464 tty7 Ss+ dec02 0:00 /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711} -background none -noreset -displayfd 17 vt7
이후의 파일 이름 -auth
은 다음 명령에서 필요한 것입니다. 이것을 루트로 실행하십시오 :
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
32 자리 16 진수 키가 나열되어 있습니다. 예를 들어 출력은 다음과 같습니다.
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
이를 사용하여 .Xauthority 파일을 생성하십시오 (다시 로그인해야하는 사용자로서).
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
'c0eaf749aa252101a0f57d5087089db7'을 (를) list 명령이 리턴 한 내용으로 바꾸십시오. 이제 .Xauthority의 크기는 51 바이트 여야하며 X 서버에 다시 연결할 수 있습니다.