第6章 ゲストのリモート管理

このセクションでは、 ssh または TLS と SSL を使用してゲストをリモートで管理する方法を説明します。SSH についての詳細は、『Red Hat Enterprise Linux 導入ガイド』 をご覧ください。

6.1. SSH によるリモート管理

ssh パッケージは、リモートの仮想化サーバーに安全に管理機能を送信できる暗号化されたネットワークプロトコルを提供します。ここで説明される方法では、SSH 接続を介して安全にトンネル化した libvirt 管理用接続を使ってリモートのマシン群を管理します。認証はすべてローカルの SSH エージェントで収集したパスフレーズまたはパスワード、および SSH パブリックキーの暗号を使って行われます。さらに、各ゲストの VNC コンソールも SSH 経由でトンネル化されます。
SSH を使って仮想マシンをリモートで管理する場合は、以下の点に注意してください。
  • 仮想マシンの管理を行う場合、リモートのマシンには root でログインしてアクセスする必要があります。
  • 初期接続のセットアップには時間がかかる場合があります。
  • すべてのホストまたはゲスト上でユーザーのキーを無効にする場合の標準的な方法や普通の方法というものはありません。
  • リモートマシンの台数が多くなると、SSH ではスケーラビリティーが低下します。

注記

Red Hat Enterprise Virtualization を利用すると多数の仮想マシン群のリモート管理が可能になります。詳細は、Red Hat Enterprise Virtualization のドキュメントを参照してください。
SSH アクセスには以下のパッケージが必要になります。
  • openssh
  • openssh-askpass
  • openssh-clients
  • openssh-server
virt-managerSSH アクセスを設定する - パスワードなしの場合とパスワードを必要とする場合

次の手順では、まだ SSH キーのセットアップを行なっていないゼロの状態から開始することを想定しています。SSH キーのセットアップや他のシステムへのキーのコピーがすでに完了している場合は、この手順は省略して構いません。

重要

SSH キーはユーザー固有となるため所有者以外は使用できません。キーの所有者はそのキーを生成した人になります。キーの共有はできません。
リモートホストへの接続を行う場合、そのキーを所有しているユーザーが virt-manager を実行しなければなりません。つまり、リモートのシステムが root 以外のユーザーによって管理されている場合、virt-manager は特権のないモードで実行されなければなりません。リモートのシステムがローカルの root ユーザーによって管理されている場合は、root ユーザーに SSH キーを作成させて所有させる必要があります。
ローカルホストは、特権を持たないユーザーで virt-manager を使って管理することはできません。
  1. オプション: ユーザーの切り替え

    必要に応じてユーザーの切り替えを行います。ここでは、他のホストおよびローカルホストをリモートで管理するためにローカルの root ユーザーを使用します。
    $ su -
  2. SSH キーペアの生成

    virt-manager を使用するマシン上でパブリックキーを生成します。ここではキーの格納先にデフォルトの ~/.ssh/ ディレクトリーを使用します。
    # ssh-keygen -t rsa
  3. キーをリモートのホスト群にコピー

    パスワードがないリモートログインまたはパスフレーズがあるリモートログインには、管理を行うシステムに SSH キーを配信しておく必要があります。ssh-copy-id コマンドを使って、指定されたシステムアドレス (この例では root@host2.example.com) の root ユーザーにキーをコピーします。
    # ssh-copy-id -i ~/.ssh/id_rsa.pub root@host2.example.com
    root@host2.example.com's password:
    ここで、ssh root@host2.example.com コマンドを使ってマシンにログインしてみます。.ssh/authorized_keys ファイルに予期しないキーが追加されていないことを確認します。
    必要に応じて、他のシステムにも同じ手順を繰り返します。
  4. オプション: パスフレーズを ssh-agent に追加

    既存の ssh-agent にパスフレーズを追加する方法を以下に示します。この作業は ssh-agent を実行していないと失敗します。エラーや競合を避けるため、SSH パラメーターが正しく設定されていることを確認してください。詳細は、『Red Hat Enterprise Linux 導入ガイド』 を参照してください。
    必要に応じて、SSH キーのパスフレーズを ssh-agent に追加します。ローカルのホストで次のコマンドを使い、パスフレーズを追加して (ある場合) パスワード入力をしないログインを有効にします。
    # ssh-add ~/.ssh/id_rsa
    SSH キーがリモートのシステムに追加されます。
libvirt デーモン (libvirtd)

libvirt デーモンは仮想マシンの管理用のインターフェースを提供します。libvirtd デーモンをインストールし、管理を必要とするすべてのリモートホストで実行しておく必要があります。

$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtdSSH の設定が完了したら、仮想マシンへのリモートアクセスおよびリモート管理が可能になるはずです。また、この時点で VNC を使ったゲストへのアクセスも可能になるはずです。
virt-manager でリモートホスト群にアクセスする

リモートホスト群は virt-manager GUI ツールで管理することができます。パスワード入力をしないログインを行うには、virt-manager を実行するユーザーが SSH キーを所有していなければなりません。

  1. virt-manager を起動します。
  2. ファイル->接続を追加 の順に開きます。
    接続を追加のメニュー

    図6.1 接続を追加のメニュー

  3. ドロップダウンメニューを使ってハイパーバイザーのタイプを選択し、リモートホストに接続 のチェックボックスをクリックして接続の メソッド (この例では SSH 経由のリモートトンネル) を開き、ユーザー名ホスト名 を入力します。次に 接続 をクリックします。