SSH 프로토콜을 통한 X응용프로그램 실행

유닉스/리눅스 서버가 내부 네트워크에 있지 않고 인터넷을 경유해서 접속하는 경우 보안 문제가 발생합니다. Xmanager와 서버간에 오가는 비밀번호나 자료를 유출하지 않으려면 Xstart의 SSH(Secure Shell) 프로토콜을 사용하면 됩니다. 

Xstart는 SSH의 사용자 인증 기능과 X11 데이터를 안전한 SSH 터널을 통해 전달하는 X11 포워딩 기능을 이용하여 암호화된 X11 연결을 지원합니다. 또한, SSH 프로토콜을 이용하면 안전한 연결 뿐만 아니라 방화벽, 매스커레이딩 서버, NAT 게이트웨이 등으로 막혀있는 네트워크 환경에서도 쉽게 X11 연결이 가능합니다. 즉, 포트 포워딩과 같이 불편한 작업이 필요 없게 됩니다. 

SSH 프로토콜을 사용하려면 먼저 Unix/Linux 서버에 sshd라는 데몬을 설치해서 실행하셔야 합니다. 최신 리눅스는 대부분 패키지에 포함되어 있어, 설치 시 추가해 주면 됩니다. 기타 다른 유닉스는 별도로 구해서 설치해야 합니다. SSH 서버에 대한 자세한 정보는 다음 사이트에서 얻을 수 있습니다.

http://www.openssh.com


  1. Xmanager 폴더에서 Xstart를 실행합니다. 



  2. 새로 만들기를 눌러 새 세션 대화 상자를 엽니다.
  3. 새로운 세션 이름을 입력하고 확인을 누릅니다.
  4. 호스트란에서는 원격 유닉스/리눅스 호스트의 호스트명 또는 IP 주소를 입력합니다.
  5. 프로토콜란에서는, 접속하고자 하는 호스트에 작동중인 적절한 프로토콜을 선택하면 되나 여기에서는 SSH 프로토콜을 선택합니다.
  6. 선택한 프로토콜에서 포트 번호나 종료시간 설정 같은 옵션을 변경할 필요가 있는 경우에는 설정 버튼을 눌러 옵션을 변경하실 수 있습니다.
  7. 사용자란에 그 호스트의 사용자명을 입력합니다.
  8. 비밀번호란에 그 호스트의 계정 비밀번호를 입력합니다.
  9. 실행 명령란에 그 호스트에서 실행될 명령을 입력합니다. xterm을 실행시킬 것이므로 다음과 같이 입력합니다.:
    /usr/bin/X11/xterm -ls 

    '-display' 옵션이 없는 것을 유의하시기 바랍니다. 이는 SSH 서버가 적절한 값을 할당하기 때문입니다. 'xterm'이 위치하는 완전한 경로는 원격 호스트의 종류에 따라 다를 수 있으므로 정확한 경로를 확인하여 입력하시기 바랍니다.

  10. 실행 버튼을 누릅니다.


문제 해결

원격 호스트에 연결할 수 없을 때

  • 원격 시스템에 SSH 서버가 설치되어 있는지 확인합니다.
  • SSH 서버가 응답하는 포트 번호(기본값 22)를 확인합니다. 만약 22번이 아닌 경우는 Xstart의 SSH 프로토콜 설정 대화 상자에서 정확한 포트 번호를 입력하셔야 합니다.

서버가 패스워드 인증(password authentication)을 지원하지 않을 때

  • SSH 서버가 사용자키 인증방법을 요구한다면 사용자는 사용자 키 세트를 생성한 후 공개 키를 SSH 서버의 사용자 계정에 설치해야 합니다. 사용자 키를 가져 오고 내 보내는 방법은 Xmanager 도움말을 참조하시기 바랍니다. 개인 키를 설치한 후에는 Xstart의 SSH 프로토콜 설정 대화 상자의 [인증 방법]을 Public Key로 선택한 후 [사용자 키] 선택란에서 선택할 수 있습니다.

127.0.0.1(local host)에서 접속요청이 있다는 보안경고를 보낼 때

  • SSH 프로토콜로 연결 했을 때, Xstart (실제로는, Xssh.exe)가 X11 프록시로서 동작을 하기 때문에 X11 연결 요청이 localhost에서 들어오게 됩니다. 따라서, 보안에는 전혀 문제가 없습니다
  • 이 메시지를 나타나지 않게 하려면, X설정 프로그램의 [보안] 탭에서 [신뢰할 수 있는 호스트]에 127.0.0.1을 등록해 주면 됩니다.