第20章 仮想化ゲストのリモート管理

このセクションでは、ssh か、TLS か、あるいは SSL を 使用して仮想化ゲストをリモートで管理する方法を説明しています。

20.1. SSH を使用したリモート管理

ssh パッケージは、リモート仮想化サーバーに対して安全に 管理機能を送信できる暗号化したネットワークプロトコルを提供します。ここに説明してある 方法は SSH 接続経由で安全にトンネル通過する libvirt 管理接続を使用して、リモートマシンを管理します。全ての認証は 使用中の SSH エージェントに よって収集された SSH パブリックキー暗号とパスワード、又はパスフレーズを 使用して行われます。更には、各ゲスト仮想マシンの VNC コンソールは SSH 経由でトンネル通過します。
SSH は通常、デフォルトで設定されており、 ユーザーには多分、既に SSH キーがセットされている可能性があり、管理サービスや VNC コンソールにアクセスするための余分のファイアウォール ルールは必要ないでしょう。
リモートで仮想マシンを管理するための SSH の 使用に於いて、以下を含む各種問題に注意して下さい:
  • 仮想マシンの管理には、リモートマシンへの root ログインでアクセスする必要があります。
  • 初期の接続セットアップは時間がかかるかも知れません。
  • 全てのホスト、又はゲスト上でユーザーのキーを撤回するのに標準的な、あるいは平凡な方法はありません。
  • ssh は多数のリモートマシン群に対してはうまく機能しません。
virt-manager の為の SSH アクセスの設定

以下の案内では、ユーザーが何もない状態からスタートしてまだ SSH キーを セットアップしていないと想定します。

  1. virt-manager コマンドが使用されるマシン上で、パブリックキーのペアが 必要になります。ssh がすでに設定してある場合は、このコマンドは 無視することができます。
    $ ssh-keygen -t rsa
    
  2. リモートログインを許可するのに、virt-manager は、libvirt を 実行している各リモートマシン上のパブリックキーをコピーする必要があります。scp コマンドを 使用することにより、リモート管理に使用したいマシンから $HOME/.ssh/id_rsa.pub ファイルを コピーします:
    $ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
    
  3. ファイルコピーが終了した後は、root として ssh を使用して リモートマシンに接続してコピーしたファイルを認可済みキーの一覧に追加します。 リモートホストの root ユーザーがまだ認可済みキーの一覧を所有していない場合は、 ファイル権限が正しくセットされているかどうか確認して下さい。
    $ ssh root@somehost
    # mkdir /root/.ssh
    # chmod go-rwx /root/.ssh
    # cat /root/key-dan.pub >> /root/.ssh/authorized_keys
    # chmod go-rw /root/.ssh/authorized_keys
    
libvirt デーモン (libvirtd)

libvirt デーモンは仮想マシンの管理用の インターフェイスを提供します。libvirtd デーモンがインストール済みであり、それが管理したい全てのリモートホスト上で稼働して いなければなりません。Red Hat kernel-xen パッケージの使用には、 特別なカーネルと CPU ハードウェアのサポートが必要になります。詳細は 1章システム要件 で確認して下さい。

$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtdSSH の設定が終了した後は、リモートで仮想マシンへ アクセスして管理できるはずです。また、この時点で VNC を 使用してゲストへもアクセスできるはずです。