Red Hat Training

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

18.2. 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/authorized_keys ファイルを確認して、予期しない鍵が追加されていないことを確認します。
    ssh root@host2.example.com
    必要に応じて、その他のシステムに対して繰り返します。
  4. オプション: パスフレーズを ssh-agent に追加します。

    必要に応じて、SSH 鍵のパスフレーズをssh-agentに追加します。ローカルホストで次のコマンドを使用して、パスフレーズ (存在する場合) を追加し、パスワードなしのログインを有効にします。
    # ssh-add ~/.ssh/id_rsa
    ssh-agent が実行していないと、このコマンドの実行に失敗します。エラーや競合を回避するには、SSH パラメーターが正しく設定されていることを確認してください。詳細は、Red Hat Enterprise System Administration Guide を参照してください。

libvirt デーモン (libvirtd)

libvirt デーモンは、仮想マシンを管理するインターフェイスを提供します。この方法で管理するすべてのリモートホストに、libvirtd デーモンをインストールして実行している。

$ ssh root@somehost
# systemctl enable libvirtd.service
# systemctl start libvirtd.service
libvirtd および SSH を設定したら、仮想マシンにリモートでアクセスして管理できるようになります。この時点で、VNC でゲストにアクセスできるようになるはずです。

virt-manager を使用したリモートホストへのアクセス

リモートホストは、virt-manager GUI ツールで管理できます。SSH 鍵は、パスワードを使用しないログインを機能させるために、virt-manager を実行しているユーザーに属している必要があります。

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

    図18.1 Add Connection メニュー

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