Azure에서 윈도우 가상머신을 생성하면 바로 원격 데스크탑을 연결할 수 있는 것으로 알고 있다(안해봤음) 하지만 리눅스 가상머신을 생성했을 경우 윈도우 머신처럼 원격 데스크탑을 사용하기 위해서는 추가적인 작업이 필요하다. 간단히 정리하자면 가상머신 콘솔에 접속해서 원격 데스크탑을 이용하기 위한 앱들을 설치하고 사용자 추가 + 환경 설정을 약간 한 다음, Azure 포탈에서 3389 포트를 열어주면 된다. 여기서는 Azure에서 우분투 16.04 LTS 버젼의 가상 머신을 생성하고 이것을 윈도우에서 원격 데스크탑 환경을 만드는 것으로 정리하겠다. 스크린샷은 나중에 여유가 될 때 추가하겠다.

여기서는 윈도우 사용자라는 가정 하에 Git, putty, puttygen 프로그램을 이용해서 진행한다.

0. git, puttygen을 이용해 SSH 키 생성

Git bash를 실행해서 다음 명령어를 통해 private key를 먼저 생성한다.

$ openssl.exe req -x509 -nodes -days 365 -newkey rsa:2048 -keyout myPrivateKey.key -out myCert.pem

$ openssl rsa -in ./myPrivateKey.key -out myPrivateKey_rsa

puttygen을 실행한 후

file 메뉴 -> Load private key 선택 -> Git에서 생성한 myPrivateKey_rsa 선택

Save private key 선택하고 myPrivateKey.ppk 파일로 저장

Save public key 선택해서 확장자 없이 myPublicKey로 저장

이렇게 생성한 public key와 private key를 Azure 가상 머신에 접속하기 위한 인증 수단으로 사용할 것이다.

1. Azure 포탈에서 리눅스 우분투 가상 머신 생성

Azure portal에서 다음 경로를 따라서 가상 머신을 생성한다.

새로 만들기 -> 가상 컴퓨터 -> 모두 보기 -> Ubuntu Server -> 16.04 LTS 선택

배포모델 선택 -> 리소스 관리자 선택 -> 만들기 -> 기본 사항 -> 인증형식 -> SSH 공개 키 선택 -> puttygen을 통해 생성한 public key의 내용을 복붙한다.

나머지는 사용자의 취향에 맞게 스펙 설정 후 가상 머신 생성을 완료한다.

Azure Portal에서 찾아가는 과정을 캡쳐했으니 혹시 도움이 된다면 눌러서 크게 보시길.

Azure-vm-new-virtual-machine

Azure-vm-new-Ubuntu

Azure-vm-create-basic-configuration


조금 기다리면 Ubuntu 16.04 LTS가 설치된 가상 머신이 생성된다. 하지만 Azure portal을 통해서는 바로 연결할 수가 없다. 우리가 직접 해결해야 한다.

2. putty를 통해 가상 머신을 콘솔로 접속하고 이것저것 설치

putty를 실행.

포탈에 나와있는 가상 머신의 IP 입력 -> Connection -> SSH -> Auth -> Private key for authentication에 puttygen을 통해 생성한 myPrivateKey.ppk 선택

초기화면(Session)으로 돌아와서 설정 저장 후 open

위 작업을 완료하면 putty terminal이 뜰 것이고 로그인 하라는 문구가 뜰 것이다.

login as: Azure portal에서 본인이 입력한 name을 입력한다 -> 별도의 비밀번호를 묻지 않고 이미 완료한 SSH 설정을 통해 자동으로 접속된다!

이제 접속한 원시 상태의 리눅스 서버에서 원격 데스크탑을 이용하기 위한 여러가지를 설치하고 설정해주어야 한다. 리눅스 콘솔에서 다음 명령어를 실행해서 설치하자.

$ sudo apt-get update
$ sudo apt-get install xrdp
$ sudo apt-get install xubuntu-desktop

xubuntu-desktop을 설치하기 위해서 대략 2GB 정도의 다운로드가 필요하고 그 만큼 설치 시간이 꽤 걸리니 다른 일을 하다가 오자.실제로 원격 데스크탑(xrdp)을 통해 접속하게 되면 쓰게 되는 GUI는 fxce4라는 프로그램이다. xubuntu-desktop을 설치를 통해 fxce4를 설치한다고 생각하면 된다. 이를 활성화시키기 위해 다음 과정을 거쳐야 한다.

$ echo xfce4-session >~/.xsession

# vi 에디터로 쉘스크립트를 수정해야 한다.
$ sudo vi /etc/xrdp/startwm.sh
# 위 명령어를 통해 vi 에디터가 열리면 /etc/X11/Xsession 바로 윗 줄에 fxce4-session 이라고 입력하고 저장 후 닫기(:wq) 한다.

# 업데이트를 반영하기 위해 xrdp를 재실행한다.
$ sudo service xrdp restart

** vi 사용법을 모르는 사람을 위한 한정적이고 한시적인 가이드 **
vi 창이 열리면 처음에 입력한 명령을 기다리기 때문에 윈도우에서 친숙한 워드프로세서라고 생각하고 막 누르면 안된다. vi가 켜진 후 바로 a키를 눌러서 입력모드로 전환하면 그 때부터 화살 키와 자판을 통해 원하는 수정 작업을 할 수 있다. 추가하고 싶은 내용을 추가한 뒤, esc키를 눌러서 입력모드를 빠져나온 후에, :wq 명령을 입력하고 엔터를 치면 저장하고 바로 나가진다.

거의 다 됐다. 이제 원격 데스크탑을 이용하기 위한 사용자 계정을 만들고 그 계정에 슈퍼 유저 권한을 준다.

$ sudo adduser (username)
$ sudo adduser (username) sudo

3. Azure 포탈에서 3389 포트 열기

마지막으로 원격 데스크탑을 위한 포트를 열어주면 된다. Azure portal에서 다음 경로를 따라 수행한다.

생성한 가상 머신 창 -> [일반]네트워크 인터페이스 -> 가상 머신 선택 -> 네트워크 보안그룹 -> 인바운드 보안 규칙 -> 추가 -> 3389 포트 추가

Azure-vm-network-interface

Azure-vm-network-security-group

Azure-vm-inbound-security-rules-port-3389


4. 다 됐다, 접속해보자.

mstsc 명령을 통해 원격데스크탑 연결 실행 -> 가상 머신의 IP 입력 -> 원격 데스크탑 창이 뜨고 로그인 정보를 입력해야 한다. 원시 시대의 가상 머신에서 입력한 사용자 계정으로 접속해보자.


참고 자료

Azure document
https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-ssh-from-windows/