원격 서버에서 크롬 브라우저와 같이 GUI 프로그램을 실행했을 때 아래와 같은 에러를 만날 수 있다.
proxy: Unsupported authorisation protocol
프로토콜 사용이 안 된다는 말인데, 기본적으로 원격 GUI 실행은 X Forwarding, 즉 실행에 필요한 프로토콜이 SSH를 통해 포워딩된다. 확인할 다른 부분도 있겠지만 /etc/ssh/sshd_config 파일부터 확인해보도록 한다.
아래의 설정이 no로 되어있지는 않은지,
X11Forwarding yes
요청한 사용자가 ssh를 사용하도록 허용되어 있는지 확인하도록 한다.
간단한 배경 지식
Linux에서는 X11이라는 디스플레이 서버를 이용하여 GUI(Graphical User Interface) 환경을 그린다. 크롬 브라우저와 같이 GUI를 지원하는 프로그램은 X Server에 그래픽을 어떻게 그릴지 요청함으로써 동작하게 되는데, 이런 GUI 지원 프로그램을 X Client라고 한다. 그리고, 이 X Server와 X Client는 네트워크 프로토콜의 형태로 통신한다. 그리고 이 프로토콜을 SSH로 포워딩하는 것을 X Forwarding이라고 한다.
참고로 X란 Linux계열에서 사용하는 GUI의 일종이며, X11은 X의 11번째 버전을 뜻한다. 보통 X라고 하면 X11로 이해하면 된다.
즉, X Forwarding을 이용해 원격 서버에서 동작하는 GUI를 지원하는 프로그램을 로컬 컴퓨터에서 원격으로 사용할 수 있다.
참고로 X Client는 프로그램이 실행되는 컴퓨터에서 실행되고, X Server는 화면이 보이는 컴퓨터에서 실행된다. SSH Server는 원격 접속을 허용하는 컴퓨터에서 실행되며, SSH Client는 원격 접속을 시도하는 컴퓨터에서 실행된다.
즉, SSH Client가 실행되는 컴퓨터는 X Server가 실행되어야 하고, SSH Server가 실행되는 컴퓨터는 X Client가 실행되어야 한다.
확인할 사항
- 로컬 컴퓨터가 윈도우인 경우
X forwarding을 지원하는 ssh 클라이언트 소프트웨어와 X server 소프트웨어가 필요하다. Putty와 Xming을 함께 사용하거나, X Server가 포함된 ssh 클라이언트 소프트웨어인 Xshell, MobaXterm 등을 사용하면 된다. - 로컬 컴퓨터가 리눅스인 경우
ssh 접속 시 -X 옵션을 사용하면 되는 듯하다.
ssh <username>@<IP> -X
- 원격 서버의 X11Forwarding 활성화
덧붙여 ssh 사용자 제한 설정이 존재하면, 사용하려는 사용자에게 ssh가 허용되어있는지 확인한다.sudo vim /etc/ssh/sshd_config # 설정 확인 X11Forwarding yes
이 외의 부분은 구글링을 해보도록 하자…….
참고문서