5.3. SSH를 사용하여 가상 머신에 연결

SSH 연결 프로토콜을 사용하여 VM(가상 머신)의 터미널과 상호 작용하려면 다음 절차를 따르십시오.

사전 요구 사항

  • 대상 VM에 대한 네트워크 연결 및 루트 액세스 권한이 있습니다.
  • 대상 VM이 원격 호스트에 있는 경우 해당 호스트에 대한 연결 및 루트 액세스 권한도 있습니다.
  • VM 네트워크는 libvirt 에서 생성된 dnsmasq 에 의해 IP 주소를 할당합니다. 예를 들어 libvirt NAT 네트워크 의 경우입니다.

    특히 VM에서 다음 네트워크 구성 중 하나를 사용하는 경우 SSH를 사용하여 VM에 연결할 수 없습니다.

    • hostdev 인터페이스
    • 직접 인터페이스
    • 브릿지 상호 작용
  • libvirt-nss 구성 요소가 VM의 호스트에 설치 및 활성화되어 있습니다. 그렇지 않은 경우 다음을 수행합니다.

    1. libvirt-nss 패키지를 설치합니다.

      # dnf install libvirt-nss
    2. /etc/nsswitch.conf 파일을 편집하고 libvirt_guesthosts 행에 추가합니다.

      [...]
      passwd:      compat
      shadow:      compat
      group:       compat
      hosts:       files libvirt_guest dns
      [...]

절차

  1. 원격 VM에 연결할 때 먼저 물리적 호스트에 SSH를 연결합니다. 다음 예제는 루트 자격 증명을 사용하여 호스트 시스템 10.0.0.1에 연결하는 방법을 보여줍니다.

    # ssh root@10.0.0.1
    root@10.0.0.1's password:
    Last login: Mon Sep 24 12:05:36 2021
    root~#
  2. VM의 이름과 사용자 액세스 자격 증명을 사용하여 연결합니다. 예를 들어 다음은 루트 자격 증명을 사용하여 testguest1 VM에 연결됩니다.

    # ssh root@testguest1
    root@testguest1's password:
    Last login: Wed Sep 12 12:05:36 2018
    root~]#

문제 해결

  • VM의 이름을 모르는 경우 virsh list --all 명령을 사용하여 호스트에서 사용 가능한 모든 VM을 나열할 수 있습니다.

    # virsh list --all
    Id    Name                           State
    ----------------------------------------------------
    2     testguest1                    running
    -     testguest2                    shut off

추가 리소스