먼저 이와 같은 SSH를 이용한 서버측의 프로그램에 GUI로 접근하는 경우 X11포워딩 이라고 한다.
그리고 본 구현은 x-desktop 구현이 가능한 가상머신 환경을 그 베이스 기반으로 하여 구현해 볼 것이다.


가장 먼저 테스트할 가상 머신이나 chroot 내서버가 준비되어 있어야 하며 그 안에서 몇가지 선 작업이 필요하다.

---- 호스트 ---- 

먼저 원격 모듈 서비스인 'ssh'가 설치 되어 있지 않다면 설치가 필요하다.

 user@user~$

sudo apt-get install ssh


다음은 ssh 서버 환경 파일을 편집해야 한다.
 

 user@user~$

sudo nano /etc/ssh/sshd_config


     
X11Forwarding

부분을 

X11Forwarding yes

로 바꾸어 주면 된다. 


이제 접속 클라이언트 측에서 X-Display를 활용하여 구동하여 보자.

---- 클라이언트 ----

-X 옵션을 통하여 ssh 명령을 실행한다.

 user@user~$

 ssh -X test@192.168.0.3


   
접속이 되었다면 GUI를 지원하는 프로그램을 실행해 보자.

 test@user~$

firefox


     
정상적으로 GUI가 뜬다면 환경변수인 $DISPLAY가  ' :10.0 ' 으로 되어 있을 것이다.

확인해 보자.

 test@user~$



echo $DISPLAY


:10.0



하지만 만일 원격 서버의 환경 변수를 디폴트값인 ' :0.0 ' 으로 바꾼다면

 test@user~$

export DISPLAY=:0.0


 test@user~$

firefox



해당 프로그램의 GUI창이 클라이언트 쪽이 아닌 원격서버(가상머신)에 뜨는 것을 확인 할수가 있다.




----------

- 예외 - 

1. 만일 호스트측에서도 완벽하게 셋팅을 마쳤는데도 불구하고 X11 포워딩이 되지 않는다면 클라이언트측의 ssh 환경설정을 바꿔줘야 하는 경우가 있다.

먼저 ' /etc/ssh/ssh_config ' 파일을 확인해 보자.

 user@user~$



cat /etc/ssh/ssh_config |grep ForwardX11 


ForwardX11Trusted no


    
위와 같이 나왔다면

     ForwardX11Trusted no


     ForwardX11Trusted yes

로 바꾸어 줘야 한다.
 

2. 그리고 만약에 해당 서버가 x-desktop 구동 모듈이 설치 되어 있지 않다면 
      
x11 구동 모듈을 전부 설치할 필요가 없이 'xauth' 패키지만 설치해 주면 된다.

(단, xauth 패키지와 '~/.Xauthority' 파일이 존재 하면 '~/.Xauthority' 파일만 새로 만들어 주면 된다.)

 user@user~$

sudo apt-get install xauth


    
'~/.Xauthority' 파일을 만들어 준다.

 user@user~$

touch .Xauthority


    

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         



+ Recent posts