SSH(-X 옵션 사용)를 통해 다른 컴퓨터에 연결한 다음 chroot했습니다.
그런 다음 X11 응용 프로그램을 실행하는 데 문제가 있습니다.
예를 들어, ssh 후에 emacs를 실행하면 X11 애플리케이션으로 새 창이 열립니다. chroot와 sshing을 실행한 후 emacs가 콘솔 응용 프로그램으로 실행되는 것을 볼 수 있습니다.
Emacs는 X11 응용 프로그램이나 콘솔 응용 프로그램으로 실행할 수 있기 때문에 오류가 발생하지 않지만 다른 GUI 응용 프로그램의 경우 오류가 발생합니다.
"cannot open display: localhost:10.0"
추신: $DISPLAY 확인을 제안하려는 사람을 막기 위해 올바르게 설정되었습니다.
문제를 식별할 수 있는지 확인할 수 있는 로그가 있는지 궁금합니다.
답변1
다른 답변에서 언급된 .Xauthority 파일 외에도 chroot에는 X 소켓이 있어야 합니다. ssh -X
X는 추상 소켓을 통해 전달되지 않고 경로가 있는 UNIX 소켓을 통해서만 전달됩니다. chroot가 /tmp/.X11-unix
바인드 마운트되지 않은 경우 chroot의 프로그램은 X 서버에 연결할 수 없습니다.
답변2
SuperUser에서 다음 제목의 게시물을 확인하세요.X11 전달이 활성화된 SSH 후 X 프로그램을 열 때 "디스플레이를 열 수 없음" 오류를 어떻게 해결합니까?
SSH를 연결하는 첫 번째 계정을 사용하여 SSH를 연결할 수 있다고 가정하면 문제는 그것과 아무 관련이 없습니다.
# /etc/ssh/sshd_config
X11Forwarding yes
이제 루트가 변경되었으므로 더 이상 로컬 측에서 .XAuthority 파일에 액세스할 수 없습니다. 이 파일은 X 응용 프로그램의 원격 디스플레이를 관리하는 데 필요합니다.
보다xauth그리고MKX 인증자세한 내용은 매뉴얼 페이지를 참조하세요.
또한, X $HOME/.Xauthority
와MIT 매직 쿠키메커니즘은 작동하며 다음과 같은 좋은 입문서가 있습니다..X 권한 부족, 작동 방식에 대해 설명합니다.
답변3
최근에 같은 문제에 직면했는데 이것이 나에게 도움이 되었습니다.
ssh -Y -C userontheserver@server
cp ~/.Xauthority /chrootdir/home/userinchroot/.Xauthority
chroot /chrootdir
chroot를 사용하는 방법에 따라 조정해야 할 수도 있습니다(예: 바인딩 /dev
, proc
...)