먼저 이와 같은 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


    

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


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

         



리눅스는 원격제어가 탁월하며 원격제어를 받는 동안 서버PC는 윈도우즈와 다르게 자신의 x-windows데스크탑 사용에 간섭을 받지 않는다.

리눅스 서버측에 원격제어 RDP (Remote Desktop Protocol) -server를 설치 하는 것은 매우 간편하다.

바로 패키지인 xrdp를 설치 하는 것이다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 서버측 데스크탑 가상머신에 xrdp모듈을 설치한다.


user@user-test:~$  sudo apt-get install xrdp






xrdp를 설치 함으로써 해당 리눅스 서버에 리눅스에서 뿐만이 아니라 윈도우즈에서도 x-windows-desktop 형태로써 접속이 가능하다.


그렇다면 리눅스 클라이언트에서 접속할때에는 어떤 소프트웨어를 주로 쓸까?

대부분 RDP 접속 소프트웨어를 사용하는데 윈도우즈는 '데스크탑 원격 연결 툴'로써 간단히 접속 할 수 있다. 


리눅스 접속 소프트웨어 중 한가지를 추천한다면 본 필자는 remmina 를 추천하고 싶다. 
remmina 는 rdp접속 뿐만이 아니라 각종 vnc 접속 및 vino-vnc-server 접속 까지 원할하게 접속하고 제어를 제공하는데에 전혀 문제가 없다.

물론 본 블로그에서는 기초 툴인 'rdesktop'을 활용한다.

그런데 여기에 xrdp를 활용 하는데에 있어서  또 한가지 변수가 있다. 

xwindows-desktop 문제 인데 서버측 x-windows-데스크탑 환경이 'xfce4-session' 인 경우에 특히 원할하게 동작 하는 것이 바로 그것이다. 

만약 터미널 환경에서 직접 접속 하려 한다면 다음의 툴을 사용하여 다음과 같이 접속하면 된다.

그렇다면 가상머신(Virtualbox)을 통하여 클라이언트 pc에서 xrdp 원격을 테스트 해보도록 하자.

먼저 서버측 가상머신의 운영체제에 위에서 설명 한듯이 xrdp를 설치 하고 ifconfig를 통해 로컬 ip를 확인한다.
(두번째 줄 inet addr : 부분이 로컬 ip에 해당한다.)

그리고 rdp 접속을 시도하려는 클라이언트 pc에 remote desktop 클라이언트 소프트웨어인 rdesktop을 설치 한다. 

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// rdesktop을 설치한다.


user@user-test:~$ sudo apt-get install rdesktop



user@user-test:~$ rdesktop <ip>


-> 접속하면 다음과 같은 프론트엔드가 구동된다.









마찬가지 이와 같은 방식으로 리눅스 뿐만이 아니라 윈도우즈로도 원격지원 방식으로 접속이 가능하다.
(물론 대부분의 윈도우즈는 서버 서비스 모듈이 자동으로 구동되고 있기 때문에 xdrp 같은 x서버 구동 패키지를 따로 설치할 필요가 없이 바로 원격접속이 가능하다.)


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


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



+ Recent posts