ssh -X는 무엇을 합니까?

ssh -X는 무엇을 합니까?

사용하는 경우 ssh -X실행 파일을 로컬로 복사하여 실행하거나 호스트 시스템에서 실행합니다. X11 전달이라고 하기 때문에 창이 내 컴퓨터에 그려지지만 호스트 컴퓨터에서 실행되는 것처럼 보입니다.

답변1

실행 파일은 원격 컴퓨터에서 실행되고 로컬 컴퓨터에 표시(그려집니다)됩니다. 그것이 하는 일은 ssh -X remote원격 컴퓨터에서 프록시 X11 서버를 시작하는 것뿐입니다. echo $DISPLAY원격 시스템에서 이 작업을 수행 하면 비슷한 내용이 표시됩니다 localhost:21.0. 이는 원격 컴퓨터에서 실행 중인 프로그램이 ID 21의 X11 서버에 그리기 명령을 보내도록 지시합니다. 그런 다음 이러한 명령을 로컬 컴퓨터에서 실행 중인 실제 X11 서버로 전달하여 화면에 그립니다. 이 전달은 암호화된 SSH 연결을 통해 발생하므로 (쉽게) 도청될 수 없습니다.

Windows, Mac OS 등과 달리 X11은 처음부터 원격 데스크톱과 같은 것이 필요 없이 네트워크를 통해 프로그램을 실행할 수 있도록 설계되었습니다. 한동안 X11 씬 클라이언트가 큰 인기를 끌었습니다. 기본적으로 X11 서버만 실행하는 간단한 컴퓨터입니다. 모든 프로그램은 일부 응용 프로그램 서버에서 실행됩니다.

답변2

로컬로 실행되는 X 구성 요소(예: render x 명령 등)를 제외하고 응용 프로그램은 원격으로 실행됩니다. 각 클라이언트 애플리케이션은 일반적으로 로컬 X 서버를 사용하여 UI를 표시합니다. 이 경우 명령은 암호화된 SSH 채널을 통해 원격 컴퓨터에서 로컬 컴퓨터로 전송되어 표시됩니다.

답변3

그러나 설정은 $DISPLAY전투의 절반에 불과합니다 . 서버 측에서 클라이언트를 인증할 수 있도록 새 인증 쿠키 ssh도 생성됩니다. 및 을 xauth참조하십시오 .xauth list~/.Xauthority

답변4

핵심은 X 서버가 사용자에게 그래픽을 제공하는 단일 서버이며 그래픽이 필요한 모든 다른 프로그램은 X 클라이언트여야 하며 서버에 연결되어야 한다는 점을 깨닫는 것입니다. 클라이언트 프로그램과 X 서버 간의 인터페이스는 처음부터 로컬 컴퓨터의 프로그램뿐만 아니라 원격 프로그램에 대한 연결을 지원하도록 설계되었습니다.

충분히 미친 네트워크에서 프로그램은 어디에서나 실행될 수 있고 다른 곳에서는 그래픽을 표시할 수 있습니다.

관련 정보