ssh를 통해 서버를 접속할 수 있다면, X11 forwarding 기능을 이용해 서버에서 GUI 프로그램을 구동시키고, 그 화면을 클라이언트(개인 PC, 노트북) 등에서 확인할수 있다. GUI 프로그램의 예는 NEURON, GROMACS, pymol 등이 있겠다. 보통은 X11 forwarding하는 것이 느린 편(이미지를 전송해야 하므로)이기 때문에 잘 쓰지 않지만, 아예 원격테스크탑을 쓰지 않고도 GUI를 클라이언트에서 다룰 수 있다는 장점이 있다. 또한 NEURON이나 GROMAC같이 계산복잡도가 높은 시뮬레이션을 돌리는 프로그램은 화면 전송 딜레이를 감수하고 X11 forwarding 기능을 쓰는게 나을 수도 있다.
이 작업을 하려면 몇가지 단계가 필요하다.
- 서버에서 ssh를 통한 x11 forwarding을 허용하는 것
- 클라이언트에서 x11 forwarding을 받아 구동하는 소프트웨어를 설치하는 것
- vs code를 통해 접속했을 때도, x11 forwarding이 구동되도록 하는 것
서버 X11 forwaring 허용
$ sudo vi /etc/ssh/sshd_config ``` X11Forwarding yes ```
ssh 환경파일을 열어서 X11Forwarding 이 있는 line을 찾아서 yes라고 해준다.
클라이언트 X11 소프트웨어
VS code setting
터미널에서 ssh로 접속할 때는 다음과 같이 -X 옵션을 붙여 준다.
ssh -p server_port -X user_name@server_ip $ xeyes
서버에 접속해서 xeyes를 열어서 클라이언트에서 xeyes GUI가 뜨는지 확인한다.
뜨는게 확인이 되었다면, vscode ssh config에 다음과 같은 옵션을 추가한다.
Host PC_name HostName server_ip Port server_port User user_name ForwardX11 yes ForwardX11Trusted yes
ForwardX11 과 관련한 옵션을 추가하면 된다.