xauth
변수 와 변수를 자동으로 생성하는 DISPLAY
방법 , 이러한 값이 선택되는 이유에 대해 알고 싶습니다 . 일부 수동 설정도 올바르지 않은 것으로 나타났습니다 .ssh -X
DISPLAY
DISPLAY
이 출력의 각 열은 무엇을 의미합니까?
[root@serverdg ~]# xauth list
serverdg2/unix:11 MIT-MAGIC-COOKIE-1 87b515cf92e356b7702d3afd721f7fe1
serverdg2/unix:10 MIT-MAGIC-COOKIE-1 e8f9bfb5abac8757f4864656ce4f9bd1
serverdg/unix:12 MIT-MAGIC-COOKIE-1 7270008abd9f949a9b1af76c7742da9e
serverdg/unix:11 MIT-MAGIC-COOKIE-1 bb2f1768b445f372e5975d728579517e
serverdg/unix:10 MIT-MAGIC-COOKIE-1 475b9a6cbc7567b956511d5d2d27950b
ssh -X
변수 값을 생성하기 위해 이 예에서 like가 사용된 이유는 무엇입니까 ?DISPLAY
10.0
[root@serverdg ~]# echo $DISPLAY
localhost:10.0
내가 아는 것은 X를 사용하기 위해 현재 사용자를 다른 사용자(user )로 변경하는 xauth list
경우 이 값을 복사해야 한다는 것입니다. 이 값은 를 사용하여 새 로그인이 이루어질 때 생성되기 때문입니다 .DISPLAY
su - user
ssh
답변1
환경 DISPLAY
변수는 애플리케이션에 연결 방법을 알려줍니다.엑스섬기는 사람. X 서버는 화면에 창을 표시하는 시스템의 일부입니다. 모니터는 창을 표시할 수 있는 것입니다.
유닉스 시스템은 다중 모니터를 가질 수 있습니다.가상 콘솔또는여러 실제 콘솔, 또는 일부 모니터가가상, 또는 일부 디스플레이가 네트워크를 통해 액세스되기 때문입니다. ssh -X
네트워크를 통해 원격 디스플레이에 연결을 전달합니다.
각 디스플레이에는 번호가 있습니다. 이 숫자의 목적은 단지 모니터를 구별하는 것입니다. :0
디스플레이 번호 0, :1
디스플레이 번호 1 등입니다. 표시 숫자를 사용하는 방법 중 하나는 응용 프로그램이 X 서버에 연결할 수 있도록 하는 것입니다. 특정 이름을 계산하는 데 사용됩니다.소켓 파일( /etc/.X11-unix/X0
, …) 또는 X 서버가 수신하는 TCP 포트 번호(6000 + 디스플레이 번호)입니다.
.0
숫자 뒤에 부품을 표시하는 것은 시대에 뒤떨어진 개념입니다. 디스플레이가 여러 화면으로 구성될 수 있고 창이 특정 화면에 바인딩되는 "화면" 번호입니다. 최신 시스템에서 X 서버는 단일 화면을 렌더링하고 응용 프로그램 창을 모니터 간에 이동할 수 있도록 합니다. 동등합니다.:NUMBER
:NUMBER.0
콜론 앞에는 컴퓨터 이름이 올 수 있습니다. 이를 통해 응용 프로그램과 X 서버 간의 TCP 통신이 가능해집니다. 이 통신은 네트워크 스누핑 및 중간자 공격으로부터 보호하지 않으므로 실제 네트워크에서는 대부분 권장되지 않지만 동일한 호스트에서 실행되는 가상 머신 간의 네트워크와 같은 일부 상황에서는 유용할 수 있습니다. . 실제로 두 가지 모두 작동하면 기능적으로 동일합니다(그러나 배후에서 더 빠른 통신 메커니즘을 사용할 수 있으며 모든 X 서버가 로컬 및 TCP를 통해 수신하는 것은 아니기 때문에 둘 중 하나만 작동할 수 있습니다. 기술적으로 다른 서버가 수신할 수도 있습니다). , 그러나 아마도 어딘가의 구성 오류일 것입니다).localhost:NUMBER
:NUMBER
:NUMBER
localhost:NUMBER
:NUMBER
X 디스플레이를 생성하는 엔터티는 디스플레이 번호를 선택해야 합니다. (서버가 결정하도록 하여 이를 수행할 수 있지만, 그렇다면 DISPLAY
애플리케이션에 대해 설정하기 위해 서버가 선택한 번호를 찾아야 합니다.) 대부분의 프로그램은 사용 가능한 가장 낮은 번호를 선택하거나 일부 구성에서 하드코드합니다. 디지털 파일. 물리적 표시를 위한 공간을 남겨두기 위해 SSH는 10으로 시작하는 숫자만 선택합니다.
DISPLAY
표시되는 엔터티가 생성될 때까지 숫자를 선택할 수 없기 때문에 수동 설정은 일반적으로 올바르지 않습니다 . 예를 들어 SSH 자체의 경우입니다 ssh -X
. 수동으로 설정 하면 DISPLAY
잘못된 번호를 얻거나 존재하지 않는 디스플레이가 광고될 수 있습니다(예: X11 전달이 거부된 경우).
다른 사용자나 다른 컴퓨터의 사용자가 자신의 것이 아닌 X 모니터에 연결을 시도할 수 있습니다. X는 원격 연결을 허용하도록 설계되었기 때문에 Unix 사용자에게만 의존할 수는 없습니다. 그래서 X는승인 메커니즘: 애플리케이션이 X 디스플레이에 연결하려는 경우 해당 애플리케이션이 인증되었음을 입증해야 합니다. 현대에는 "쿠키" 형식 MIT-MAGIC-COOKIE-1
(16진수로 16바이트)이라는 하나의 인증 메커니즘만 있습니다. 쿠키는 서버가 시작될 때 생성되고 합법적인 사용자만 읽을 수 있는 파일에 저장되는 긴 임의 문자열입니다. X 디스플레이에 연결하려면 애플리케이션이 쿠키 값을 서버로 보내야 합니다. 쿠키 값이 올바르지 않으면 서버는 연결을 거부합니다.