0. 개요
서버에서 터미널을 열고 직접 작업을 하려면 꽤 번거롭기 때문에, 웬만하면 SSH 연결을 통해 원격으로 작업을 진행하는 것이 보편적이다. 기본적인 CUI 환경을 통한 작업은 PuTTY 터미널을 이용해 작업을 하지만, X window 기반 GUI 프로그램을 원격으로 조작하기 위해서는 X11 Forwarding 설정을 진행해야 조작이 가능하다.
X11 Forwarding 을 사용하면 원격지 서버의 가상 디스플레이에 실행되고 있는 X window 기반 GUI 프로그램을 작업자의 로컬 PC로 가져와 원격으로 사용 / 조작할 수 있게 해준다.
본 포스트에서는 SSH 연결을 통해 로컬PC에서 서버에 원격 접속하여, X window 기반 GUI 프로그램을 실행하는 방법에 대해 알아보고자 한다.
1. 환경
본 포스트에서 진행한 환경은 아래와 같다.
원격 서버 OS | RedHat Linux 8.8 64-bit |
로컬 PC OS | Windows 11 Pro |
CUI 원격 접속 SSH 터미널 | PuTTY |
GUI 원격 접속 SSH 프로그램 | Xming |
Xwindow 실행 테스트 앱 | FireFox |
1. Xming 설치
PuTTY 는 기본적으로 설치 및 사용중이라는 전제하에 진행하도록 하겠다.
Xming은 X window 기반 GUI 실행 프로그램을 로컬 PC에서 실행할 수 있게 도와주는 대표적인 프로그램이다. 설치 중 따로 옵션을 변경해야 할 것은 없으니, 그냥 다운로드 후 로컬 PC에 설치만 하면 된다.
설치가 완료되면 Xming을 실행한다. 상기와 같은 화면이 출력되는 이유는, 외부에서 로컬 PC의 Xming 프로그램에 네트워크로 접근 허용 여부를 묻는 화면이다.
원격지 서버에서 SSH 연결 후, X11 Forwarding을 통해 로컬 PC로 Xming 프로그램을 이용하여 X window 기반 GUI 프로그램을 받아와야 하므로 허용
버튼을 눌러준다.
시스템 트레이 아이콘에 Xming 아이콘이 생겼는지 확인한다. 마우스 hover을 올렸을 때 Xming Server:0.0
으로 출력되는 것을 확인하자.
- Xming Server의 값 이해하기 (= Xming Server에서의 X display location 값)
- 상기 이미지에서의 Xming Server값은 0:0
- 첫번째 0 : 현재 접속한 Xming Server의 Display 값 (0번째 X window임을 의미)
- 두번째 0 : 첫번째 모니터를 의미
- → PuTTY의 X display location 설정은 Xming Server:0.0에서 :0을 입력해 주면 된다.
- 예시) X display location 값이 Xming Server:5.0 일 경우는?
- → PuTTY의 X display location 설정을 :5로 입력하면 된다.
- 예시) X display location 값이 Xming Server:5.0 일 경우는?
- 상기 이미지에서의 Xming Server값은 0:0
2. PuTTY 설정
PuTTY에서 X11 Forwarding을 사용할 수 있게 PuTTY 접속 설정을 변경하도록 한다.
RHEL 서버에 원격 접속되어 있는 PuTTY 세션을 종료하고, PuTTY를 다시 실행한다. 접속중인 세션의 X11 Forwarding 설정은 변경할 수 없기 때문에, 세션에 로그인 하기 전에 설정을 바꿔야 한다.
Connection
→SSH
→X11
메뉴로 진입Enable X11 forwarding
항목 체크X display location
을 Xming Server의 Display Location에 맞게 입력 (Xming Server:0.0일 경우 :0 입력)- 설정 저장 후
Open
버튼을 눌러 세션 접속
3. Linux 서버 설정
Linux서버의 sshd_config
파일에 X11 Forwarding 설정이 정상적으로 되어있는지 여부를 확인하자.
# cat /etc/ssh/sshd_config | grep X11
X11 Forwarding 항목이 필자처럼 처음부터 yes
로 설정되어 있으면 문제 없지만, 혹시라도 no
로 입력되어 있을 경우 vim
편집기를 통해 yes
로 수정해 주어야 한다.
sshd_config
파일을yes
로 수정했을 경우systemctl restart sshd
명령어를 통해,sshd
설정 변경값이 적용될 수 있도록sshd
서비스를restart
해 주어야 한다.
4. X window GUI 프로그램 실행
추가적인 패키지 설치할 필요 없이, Linux 기본 웹 브라우저인 FireFox를 간단하게 실행해보도록 하자.
# firefox
X11 Forwarding을 이용하여 Firefox 프로그램이 서버 → 로컬 PC로 원격 실행된 모습을 확인할 수 있다.