SSH를 사용하지 않고 원격 호스트에 xeyes를 표시하려면 어떻게 해야 합니까?

SSH를 사용하지 않고 원격 호스트에 xeyes를 표시하려면 어떻게 해야 합니까?

저는 astra(slackware 15)와 nebula(macos mojave)라는 두 대의 컴퓨터에서 X를 실행하고 있습니다. Astra에서 로컬로 xeyes를 실행하고 성운에 표시하고 싶습니다. 다양한 문서를 통해 내가 이해한 바는 다음을 실행할 수 있어야 한다는 것입니다.

xeyes -display nebula:X.Y

Astra에서 X는 성운의 디스플레이 인덱스이고 Y는 화면 번호입니다.

나는 X와 Y의 조합, X나 Y의 조합 등을 여러 번 시도했지만 소용이 없었습니다. 오류 메시지가 계속 나타납니다.

오류: 디스플레이를 열 수 없습니다:nebula:XY

로컬에서 다음 명령을 사용하여 원격 컴퓨터에서 실행 중인 X 프로그램을 표시할 수 있습니다.

ssh -Y host

문제는 없습니다. 하지만 제가 해결하려는 것은 그게 아닙니다. 위에서 설명하고 Xorg 서버에서 지원하는 대로 로컬 클라이언트를 로컬에서 실행하고 디스플레이를 원격으로 표시할 수 있기를 원합니다.

과거의 작동 방식과 현재 작동 방식에는 차이가 있을 수 있습니다. 제가 찾은 문서는 더 오래되었습니다.

답변1

Nebula에 표시하려면 astra의 MacOS Mojave 컴퓨터, Slackware 15 컴퓨터에서 몇 가지 단계를 수행해야 합니다.

  1. XQuartz 환경 설정 - 보안 -> 네트워크 클라이언트로부터의 연결 허용.
  2. XQuartz 다시 시작
  3. Nebula에서 MIT-MAGIC-COOKIE-1 가져오기
  4. Astra의 xauth 목록에 추가하세요.
  5. Astra에서 클라이언트를 실행하면 Nebula 화면에 표시됩니다.

세부사항은 다음과 같습니다:

X가 어떻게 시작되는지 보려면 다음을 실행하세요 ps aux | grep X.

user            96691   0.0  0.0  4279568   5012   ??  S    12:39PM   0:00.01 /opt/X11/bin/Xquartz :0 -nolisten tcp -iglx -auth /Users/user/.serverauth.96532

주목해야 할 핵심 사항은 -nolisten tcp및 입니다 -auth. 이는 각각 X 서버가 TCP를 수신하고 있지 않으며 X 서버에 대한 연결에 인증이 필요함을 나타냅니다.

네트워크 연결을 허용하도록 XQuartz의 기본 설정을 변경하고 다시 시작하면 다음과 같은 변경 사항이 발생합니다.

user            97993   0.0  0.0  4279568   5004   ??  S     2:08PM   0:00.01 /opt/X11/bin/Xquartz :0 -listen tcp -iglx -auth /Users/user/.serverauth.97835

이제 XQuartz는 아래와 같이 TCP를 수신하고 있습니다.-listen tcp

Nebula, Nebula 또는 원격 로그인을 통해 매직 인증 쿠키를 얻으려면 다음을 실행 xauth list하고 올바른 쿠키를 찾으십시오.

nebula:0  MIT-MAGIC-COOKIE-1  240800a1f435f70d92f8f8c706eeb547

Astra에서 다음 명령을 사용하여 xauth 목록에 쿠키를 추가합니다.

xauth add nebula:0 . 240800a1f435f70d92f8f8c706eeb547

모든 것이 순조롭게 진행되었다면 이제 Astra에서 xeyes를 실행할 수 있습니다.

xeyes -display nebula:0

눈

참고 사항:

  1. 실행을 위해서는 XQuartz가 필요합니다 :)
  2. 쿠키는 최신 상태여야 합니다. 그것은 바뀔 것이다.
  3. 명령에 점이 xauth add필요합니다.

관련 정보