중간 기계에서 X 사용

중간 기계에서 X 사용

sshd_config편집: 작업 컴퓨터에서 파일을 올바르게 설정 하지 않았습니다 . 해당 줄의 주석 처리를 제거했지만 X11Forwarding no"예" 대신 "아니오"라고 쓰여 있다는 것을 깨닫지 못했습니다. 기본값은 "No"이므로 별 관심 없이 X11Forwarding yes주석을 제거한 이후의 결과일 것이라고 가정했습니다.

중간에 공용 머신이 있습니다. 직장에 또 다른 컴퓨터인 WORK가 있고 내 집 컴퓨터인 HOME에서 해당 컴퓨터에 액세스할 수 있기를 원합니다.

HOME은 MIDDLE에 접근할 수 있고, WORK는 MIDDLE에 접근할 수 있지만, MIDDLE은 어떤 기계에도 직접 접근할 수 없고, HOME과 WORK는 서로 직접 접근할 수 없습니다.

X11Forwarding이 활성화된 작업에서 SSH 서버를 실행하고 있습니다. 직장에서 중간까지 역터널을 설치하고 집에서 하면 ssh -X MIDDLE, ssh -X -p <someport> localhost나는 얻는다 X11 forwarding request failed on channel 0.

터널을 설정하는 데 사용하는 명령은 다음과 같습니다.

# On machine WORK:
user2@WORK:   $ ssh -R 33333:localhost:22 user1@MIDDLE

# On machine HOME:
user@HOME:    $ ssh -Y user1@MIDDLE
# And then on machine MIDDLE:
 user1@MIDDLE: $ ssh -Y user2@localhost -p 33333

노트: user1 != user2.

내가 원하는 것을 달성할 수 있는 방법이 있나요?

답변1

"새"(실제로는 그다지 새롭지 않음) cmdline 플래그를 사용해 볼 수 있습니다 -Y. 이것은더 나은 것대리자 -X. 매뉴얼에서:

     -Y      Enables trusted X11 forwarding.
             Trusted X11 forwardings are not subjected 
              to the X11 SECURITY extension controls.

이제 이것은 많은 것을 드러내지 않습니다(적어도 링크에 관한 한). 그러나 빠른 테스트를 통해 작동하는 것으로 나타났습니다.

   $ ssh -Y localhost   # first connection
   $ ssh -Y localhost   # second connection on top of first connection
   $ xclock

(실제 네트워크에서도 테스트했는데,가운데머신에는 확실히 X11 서버가 없으므로 작동합니다.)

답변2

분명히

ssh -Y user1@MIDDLE -p 33333

문제는 HOME에서 해결되어야 합니다. ssh -Y user2@localhost -p 33333중간에 있을 필요는 없습니다 .

관련 정보