Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

本セクションでは、ssh または TLS および SSL を使用してゲストをリモートで管理する方法を説明します。SSH の詳細は、Red Hat Enterprise Linux デプロイメントガイド を参照してください。

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

ssh パッケージは、暗号化したネットワークプロトコルを提供し、管理機能をリモート仮想サーバーに安全に送信できます。以下の方法は、SSH 接続上でセキュアにトンネリングされた libvirt 管理接続を使用して、リモートマシンを管理します。すべての認証は、SSHの公開鍵暗号と、ローカルのSSHエージェントが収集したパスワードまたはパスフレーズを使用して行われます。さらに、各ゲストの VNC コンソールは、SSH を介してトンネリングされます。
次のような、仮想マシンをリモート管理するために SSH を使用する際の問題に注意してください。
  • 仮想マシンを管理するには、リモートマシンへの root ログインアクセスが必要です。
  • 初期接続の設定プロセスが遅くなる可能性があります。
  • すべてのホストまたはゲストでユーザーのキーを取り消す標準または簡単な方法はありません。
  • SSH は、リモートマシンの数が多いと適切にスケーリングされません。
注記
Red Hat Virtualization により、多数の仮想マシンのリモート管理が可能になります。詳細については、Red Hat Virtualization のドキュメントを参照してください。
ssh アクセスには、以下のパッケージが必要です。
  • openssh
  • openssh-askpass
  • openssh-clients
  • openssh-server

virt-manager 用にパスワードを使用しないまたはパスワードを使用したSSH アクセスの設定

以下の手順は、ゼロから開始しており、SSH キーが設定されていないことを前提としています。SSH 鍵を設定して別のシステムにコピーしている場合は、この手順をスキップできます。

重要
SSH 鍵はユーザーに依存するため、所有者のみが使用できます。キーの所有者は、キーを生成した人です。キーは共有できません。
リモートホストコンピューターに接続するには、キーを所有するユーザーがvirt-manager を実行する必要があります。つまり、リモートシステムが root 以外のユーザーにより管理されている場合は、virt-manager を非特権モードで実行する必要があります。リモートシステムがローカルの root ユーザーで管理されている場合は、SSH 鍵を root が作成して所有する必要があります。
ローカルホストは、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 ツールで管理できます。SSH キーは、パスワードを使用しないログインを機能させるために、virt-manager を実行しているユーザーに属している必要があります。

  1. virt-manager を起動します。
  2. File ->Add Connection メニューを開きます。

    図5.1 Add Connection メニュー

    Add Connection メニュー
  3. ドロップダウンメニューを使用してハイパーバイザータイプを選択し、Connect to remote host チェックボックスをクリックして Connection Method (この場合は Remote tunnel over SSH) を開き、必要な User nameHostname を入力して Connect をクリックします。