試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

VirtualBox 1.4.0でVRDP機能を試す

VirtualBoxでは、画面の出力として、Windowsのリモートデスクトップ接続で使われている、RDPというプロトコルのサーバを動作させて、rdesktopなどのクライアントから接続することができる。
もしかすると、教育としての使い方もできるのかもしれないが、クライアントの操作を読み取り専用(見るだけ)にすることは、現段階ではできないため、悪意のある操作をされないとは限らない。
認証モードを「Null」にすると接続ができることは確認したのだが、認証をかけるようにすると、手元の環境では、正しいユーザ名とパスワードを指定してもうまくいかなかった。
(2008/9/8)バージョン2.0.0で試したところ、「外部」の認証方式でうまく認証が動作していることが確認できた。
関連記事:

VRDP機能を使用する設定

「リモートディスプレイ」の設定で、ポート番号や認証方式などの設定をする。

èµ·å‹•

リモートディスプレイを有効にした後、普通に起動すると、通常のウィンドウにも画面が出るので、これを出さないで起動させたい場合、下のようにする。

$ VBoxVRDP -startvm [仮想マシン名 もしくは UUID] &

接続

上が認証なしの場合で、下が認証ありの場合。

$ rdesktop 127.0.0.1:[設定したポート番号]
$ rdesktop -u [ユーザ名] -p - 127.0.0.1:[設定したポート番号]

認証の種類

マニュアルによると

  • 「Null」:認証をしない
  • 「外部」:ホストOSのユーザアカウントで認証を行う(別のカスタム方式も使える仕組みになっているようだ)
  • 「ゲスト」:Guest Additionsを使用して、ゲストOSのユーザアカウントで認証するのだが、テスト中で、未サポート

とのこと。手元の環境での実験では、「外部」の設定にすると、rdesktopに-uや-pオプションで正しいユーザ名とパスワードを指定した場合に、一瞬でrdesktopのウィンドウが閉じてしまった。間違ったユーザ名やパスワードを入れると、しばらく真っ黒な画面が表示されてから閉じるので、正しいか間違っているかは判別できているようなのだが...
ログを見ると

00:02:17.072 VRDP: New connection: 
00:02:17.094 VRDP: Channel: [cliprdr] [1004]. Accepted.
00:02:17.128 VRDP: Client seems to be rdesktop.
00:02:17.128 VRDP: Logon: マシン名 (127.0.0.1) build 2600. User: [ユーザ名] Domain: []
00:02:17.154 VRDPAUTH: User: [ユーザ名]. Domain: []. Authentication type: [external]
00:02:17.251 VRDPAUTH: ConsoleVRDPServer::Authenticate: loading external authentication library 'VRDPAuth'
00:02:17.263 VRDPAUTH: Could not resolve import 'VRDPAuth2'. Error code: VERR_SYMBOL_NOT_FOUND
00:02:17.263 VRDPAUTH: Using entry point 'VRDPAuth'.
00:02:17.324 VRDPAUTH: external authentication module returned 'access denied'
00:02:17.324 VRDPAUTH: Access denied.
00:02:17.324 VRDP: Connection closed: 
00:02:17.324 VRDP: Logoff: マシン名 (127.0.0.1) build 2600. User: [ユーザ名] Domain: [] Reason 0x0001.

というようになっている。
「ゲスト」も試したが、残念ながら、うまくいかなかった。

解像度が変わったときに白い部分が出る場合

ゲストOSの画面解像度が変化したとき、一部が白いままになってしまうことがある。この場合、一度切断(rdesktopのウィンドウを閉じる)して

$ rdesktop -g 1024x768 127.0.0.1:[ポート番号]

のように、ジオメトリ指定をして接続し直すとよい。

使用したバージョン: