조희대의 개인사이트
Anything personal, something useful

슬랙웨어 호스트에 설치된 윈도 7 버추얼박스에 접속하기

버추얼박스에서 돌아 가는 윈도 7에 리모트 데스크탑 클라이언트(RD 클라이언트)로 접속하기 위해서는 크게 세 가지 방법이 있다.

슬랙웨어에서 위 네 가지 방법을 모두 시도해 봤다. null 방법은 문제 없이 잘 됐다. 하지만, 로그인 없이 바로 접속이 되기 때문에 위험할 수 있다. VBoxAuth external 방법은 PAM을 기반으로 하지 않는 슬랙웨어에서는 당연히 안 됐다. VBoxAuthSimple external 방법은 잘 되었으나 한 가지 주의할 사항이 있었다. guest 방법은 윈도 7에서 리모트 로그인을 허락하든지 안 하든지 접속할 수 없었다. 따라서 슬랙웨어에서 유일하게 작동하는 사용자 인증방식인 VBoxAuthSimple external을 어떻게 구현했는지 정리해 본다.

호스트에서 다음의 명령들을 실행한다.

# 인증라이브러리 VBoxAuthSimple을 활성화한다.
VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"

# 버추얼머신 VM의 인증방식을 external로 설정한다.
VBoxManage modifyvm "VM name" --vrdeauthtype external

# 비밀번호의 해시를 생성한다.
VBoxManage internalcommands passwordhash "secret"

# 생성된 비밀번호해시 <hash>를 <user>의 비밀번호로 설정한다.
VBoxManage setextradata "VM name" "VBoxAuthSimple/users/<user>" <hash>

위의 과정을 마쳤으면 호스트에서의 준비는 끝났다. RD 클라이언트로 접속을 시도해 보면 접속이 실패할 수도 있다. 문제는 RD 클라이언트는 기본적으로 RD 서버의 사용자 인증서비스를 기다린다는 것이다. 예를 들어 버추얼머신이 아닌 실제 윈도 7에 리모트로 접속할 때는 서버에 연결된 후 서버가 사용자를 인증하는 방식이다. 하지만 VBoxAuthSimple external 방식의 경우 게스트 OS인 윈도 7이 사용자를 인증하는 guest 방법이 아니기 때문에 서버의 인증서비스를 기대할 수는 없다. 대신 사용자 인증에 필요한 정보를 미리 모아서 버추얼박스에 보내야 한다. 이를 위해서는 RD 클라이언트의 Allow me to save credentials 옵션을 선택해서 비밀번호를 미리 입력해서 저장한 후 버추얼박스의 윈도 7에 접속하기 전에 인증정보를 버추얼박스로 보낼 수 있어야 한다. 좀 의아한 점은 이 옵션을 선택했다고 해서 비밀번호가 실제로 영구저장 되지는 않는 것 같다. 비밀번호 입력창에 Remember my credentials 옵션이 보이지 않고 접속할 때마다 비밀번호를 물어 보니 큰 문제는 없는 것 같다. 하지만 이것 때문인지 매번 Allow me to save credentials를 선택해 줘야 하는 불편함이 있다. 그래도 비밀번호를 저장해 버리는 것 보다는 낫다고 생각한다.

참고문헌

이 칸을 비워 두세요.