저는 VMWare에서 Ubuntu 서버를 실행하고 있습니다. Ubuntu 게스트에서 Mac 호스트로 X11을 전달하고 싶습니다.
XQuartz 2.7.9 (xorg-server 1.17.4)
Mac 호스트에 설치했습니다 .
Ubuntu에서는 SSH 전달이 활성화되어 있습니다.
그런 다음 iTerm에서 다음을 시도했습니다.
%> echo $DISPLAY
/private/tmp/com.apple.launchd.mjxVyILVrR/org.macosforge.xquartz:0
%> ssh -X root@xxxx
# echo $DISPLAY
# gnome-terminal
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display
$DISPLAY가 비어 있으면 X11 전달이 작동하지 않습니다.
어떤 아이디어가 있나요?
답변1
뛰어들어가려고 ssh -Y root@xxxx
해xterm
~에iTerm 대신 XQuartz. 그게 효과가 있을까요?
답변2
원격 시스템에서 /etc/ssh/sshd_config를 열고 X11Forwarding을 yes로 설정합니다. 그런 다음 SSH 서비스를 다시 시작하고 다시 시도하십시오.
답변3
내가 틀렸다면 정정해주세요. Mac에서 Ubuntu를 실행하는 컴퓨터에 원격으로 액세스하려고 하는데 Ubuntu에 "ssh"하고 "echo $DISPLAY"를 시도하면 빈 응답이 나타납니다. 다음 해결 방법이 귀하의 상황에 맞지 않을 수도 있지만, 제가 시도한 것과 비슷한 것을 시도하고 있다면 시도해 보십시오.
발견한 대로 DISPLAY 변수를 먼저 찾아야 합니다.
따라서 Mac에서 일반 사용자로 입력하면
echo $DISPLAY
그러면 아래와 같은 것을 얻게 될 것입니다(그것이 바로 당신이 가지고 있는 것입니다). 어느 쪽이든 시스템에서 비슷한 것을 보게 될 것입니다.
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
그런 다음 다음과 같이 시도해보십시오.
xeyes
이제 모니터가 작동하는지 알 수 있습니다.
이제 루트로 동일한 작업을 시도하고 싶다면(나를 비난하지 마십시오. 여러분 중 일부는 루트 액세스에 강력히 반대한다는 것을 알고 있습니다) 그래도 작동하지 않으면 루트 프롬프트에서 다음을 수행하십시오.
export DISPLAY=/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
일반 사용자 계정에서 찾은 것과 동일합니다. 그런 다음 "/Users/normal user/.Xauthority"의 ".Xauthority"를 "/var/root/"에 복사합니다. .Xauthority 파일이 이미 존재하지만 덮어쓰게 됩니다.
cp /Users/normal user/.Xauthority /var/root/
물론 내보내기가 가능할 수도 있지만 위의 작업을 수행해도 아무런 해가 없습니다. 이제 다음을 시도해 보세요.
echo $DISPLAY
다음을 봐야합니다
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
일반 사용자 프롬프트에서 Ubuntu로 "ssh"하는 경우 루트 부분을 수행할 필요가 없지만 루트를 사용하여 Ubuntu 시스템을 "ssh"하기 때문에 종종 이 작업을 수행해야 합니다.
그런 다음 Ubuntu에 ssh를 입력하면 다음을 입력하십시오.
echo $DISPLAY
다음과 비슷한 내용이 표시됩니다.
localhost:10.0
위의 방법은 다른 모든 작업(예: 전달 등)을 수행한 경우 작동합니다.
마찬가지로, Ubuntu에서 루트가 되고 싶은데 "echo $DISPLAY"가 아무런 응답도 생성하지 않으면 다음을 시도하십시오(루트 프롬프트에 있다고 가정).
cp /home/user name/.Xauthority /root/.Xauthority
지금 시도해 보세요
echo $DISPLAY
다시, 다음과 같은 내용이 표시됩니다.
localhost:10.0
재미있게 사용해 보세요.
xeyes
내 경우에는 작동합니다. 이것이 위의 문제와 같은 문제 또는 내가 머리를 긁고 머리카락을 뽑으려고 할 때 했던 것처럼 누군가가 이 문제에 대해 몇 시간을 소비한 나와 같은 문제를 해결하고 도움이 되기를 바랍니다. :-)).
답변4
다양한 옵션을 시도한 후에 이것이 나에게 효과적이었습니다.
내 Mac에서:
먼저 xQuartz를 시작합니다. 그런 다음 터미널로 가서 export DISPLAY=localhost:0
.
내 원격 Linux PC에서:
Wayland 문제가 있어서 /etc/gdm/custom.conf
해당 줄의 주석 처리를 제거 했습니다 WaylandEnable=false
. 나도 결심했어 export XAUTHORITY=$HOME/.Xauthority
. 마지막으로 export QT_QPA_PLATFORM=xcb
Python이 작동하도록 몇 가지 그래픽 라이브러리를 설정했습니다 .
설정이 완료되면 이제 원격 서버에 SSH를 통해 접속할 수 ssh -Y remoteserver@IP
있으며 제대로 작동할 수 있기를 바랍니다.