5.3. SSH を使用した仮想マシンへの接続
SSH 接続プロトコルを使用して仮想マシンの端末と相互作用するには、以下の手順に従います。
前提条件
- ターゲットの仮想マシンへのネットワーク接続および root アクセス権がある。
- ターゲットの仮想マシンがリモートホストにある場合は、そのホストへの接続およびルートのアクセス権限もある。
仮想マシンネットワークは、
libvirt
が生成したdnsmasq
により IP アドレスを割り当てます。これは、たとえば、libvirt
NAT ネットワーク などに該当します。特に、仮想マシンが次のネットワーク設定のいずれかを使用している場合、SSH を使用して仮想マシンに接続することはできません。
-
hostdev
インターフェイス - ダイレクトインターフェイス
- ブリッジインターフェイス
-
libvirt-nss
コンポーネントを仮想マシンのホストにインストールして有効にしている。そうでない場合は、以下を行います。libvirt-nss
パッケージをインストールします。# dnf install libvirt-nss
/etc/nsswitch.conf
ファイルを編集し、libvirt_guest
をhosts
行に追加します。... passwd: compat shadow: compat group: compat hosts: files libvirt_guest dns ...
手順
リモート仮想マシンに接続する場合は、最初に SSH でその物理ホストに接続します。以下の例は、root 認証情報を使用してホストマシン
192.0.2.1
に接続する方法を示しています。# ssh root@192.0.2.1 root@192.0.2.1's password: Last login: Mon Sep 24 12:05:36 2021 root~#
仮想マシンの名前とユーザーアクセスの認証情報を使用して、仮想マシンに接続します。たとえば、以下は、root 認証情報を使用して、仮想マシン
testguest1
に接続します。# ssh root@testguest1 root@testguest1's password: Last login: Wed Sep 12 12:05:36 2018 root~]#
トラブルシューティング
仮想マシンの名前が分からない場合は、
virsh list --all
コマンドを使用すると、ホストで利用可能な仮想マシンのリストを表示できます。# virsh list --all Id Name State ---------------------------------------------------- 2 testguest1 running - testguest2 shut off