
원격 컴퓨터에 ssh로 접속했는데 xforwarding이 잘 작동합니다... 하지만 "sudo su -" 또는 "sudo su user2"를 실행하자마자 더 이상 Xforwards에서 오류가 발생하지 않습니다.
X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
어떤 아이디어가 있나요?
감사해요
답변1
- 클라이언트에서 X-11 전달 활성화
- 일반 사용자로 로그인
echo $DISPLAY
관련 디스플레이를 얻으려면xauth list
, #3에서 찾은 것과 일치하는 디스플레이 번호를 찾아 복사하세요.- 루트로 Sudo
xauth add <paste in what you copied from #4>
- 이제 루트로 명령을 실행할 수 있으며 X11 전달 연결을 설정할 수 있습니다.
답변2
그 전에 sudo
다음을 수행하십시오.
$ xauth extract /tmp/xauthstuff $DISPLAY
그런 다음 sudo
다음을 수행하십시오.
# xauth merge /tmp/xauthstuff
이것이 당신에게 효과가 있습니까?
PS rm /tmp/xauthstuff
나중에 기억하세요
답변3
위의 작업을 수행하기 위해 루트 계정에 액세스할 수 없으므로 여기에 제가 사용한 해결 방법이 있습니다.
먼저 평소처럼 계정에 SSH를 통해 접속하고 모든 것이 작동하는지 테스트하세요.
ssh -Y <you>@<your_server>
저는 보통 연결이 되었는지 확인하기 위해 XTerm을 실행합니다. 모두 양호하다면 홈 디렉토리에 있는 .XAuthority 파일을 복사하여 <you>
공용 디렉토리에 넣으십시오.
cp ~/.Xauthority /tmp/tempXAuth
sudo 계정이 이후 단계에서 사용할 수 있도록 공용 디렉터리의 해당 파일에 chmod 777을 설정했는지 확인하세요.
chmod 777 /tmp/tempXAuth
이제 작업을 수행해야 하는 사용자에게 sudo를 실행하세요.
sudo su - <other_user>
일단 <other_user>
기존 .Xauthority를 백업한 다음 "양호한" 파일을 복사하세요.
cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority
X 프로그램을 실행하고 현재 XServer 세션으로 인증할 수 있어야 합니다.
답변4
일반적으로 로그인하는 사용자로 다음을 입력합니다.
cd
sudo cp .Xauthority /root/
그런 다음 다음을 사용하여 루트로 전환할 수 있습니다.
sudo su