SSH de la máquina local a virtual a través de KVM y Centos 8 invitado

SSH de la máquina local a virtual a través de KVM y Centos 8 invitado
Por defecto, las máquinas virtuales KVM usan redes NAT privadas, a las que solo se pueden acceder desde el host KVM. Por lo tanto, no puede acceder a las máquinas virtuales KVM desde su red doméstica. Para SSH en máquinas virtuales que se ejecutan en su host KVM, hay dos métodos para hacerlo: túneles SSH y configuración de un puente de red KVM público. Este artículo le muestra cómo SSH en una máquina virtual KVM Centos 8 desde su red doméstica a través de SSH Tunneling y utilizando un puente de red KVM público.

Requisitos previos

Para probar los ejemplos en este artículo, debe tener KVM instalado en su computadora. Si no tiene KVM instalado en su computadora, puede leer los siguientes artículos en Linuxhint.com para recibir ayuda en la instalación de KVM en la distribución de Linux deseada.

- Instale KVM en Ubuntu 20.04

- Instale KVM en CentOS 8

Creación de una máquina virtual CentOS 8 KVM

Esta sección le muestra cómo crear una máquina virtual CentOS de 8 KVM para probar la conectividad SSH.

Primero, descargue la imagen de instalación de CentOS 8 ISO. Para mantener organizados todos los archivos/datos de la máquina virtual, es una buena idea almacenar la imagen ISO en el /KVM/ISO/ directorio.

Navegar al /KVM/ISO/ directorio con el siguiente comando:

$ CD /KVM /ISO

Puede encontrar el enlace a la imagen de instalación ISO de CentOS 8 en el sitio web oficial de ISO de Centos.

Una vez que se carga la página, haga clic en su espejo Centos 8 más cercano.

Todas las imágenes disponibles de instalación de CentOS 8 ISO deben aparecer.

Descargaré la imagen de instalación de NetBoot ISO de CentOS 8 para este artículo. Para instalar CentOS 8 en una máquina virtual KVM utilizando la imagen de instalación de NetBoot ISO, la máquina virtual requiere conectividad a Internet.

Si no desea configurar la red al instalar CentOS 8 en la máquina virtual, seleccione la mínimo o el DVD Imagen de instalación de ISO de Centos 8.

Haga clic con el botón derecho (RMB) en el archivo ISO para descargar y copiar el enlace del archivo ISO.

Descargue la imagen de instalación de Centos 8 ISO usando wget, como sigue:

$ sudo wget http: // espejo.dhakacom.com/centos/
8.2.2004/isos/x86_64/centos-8.2.2004-x86_64-boot.Yo asi

wget debe comenzar a descargar la imagen ISO de Centos 8. Tomará un tiempo completar.

En este punto, se debe descargar la imagen ISO de Centos 8.

La imagen ISO Centos 8 está disponible en el /KVM/ISO/ Directorio, como puede ver en la captura de pantalla a continuación.

$ ls -lh

Una vez que se descarga la imagen CentOS ISO, cree una máquina virtual KVM con el siguiente comando:

$ sudo virt-install --name CentOS8-01 \
--OS-Type Linux \
--OS-Variante CentOS8 \
--RAM 2048 \
--disco/kvm/disco/centos8-01.img, dispositivo = disk, bus = virtio, size = 10, format = QCow2 \
--gráficos vnc, escuchar = 0.0.0.0 \
--noautoconsole \
--HVM \
--CDROM/KVM/ISO/CENTOS-8.2.2004-x86_64-boot.Yo asi \
--Boot Cdrom, HD

El nombre de la máquina virtual será CENTOS8-01.

El tipo de sistema operativo es Linux y la variante es Centos8.

La RAM (memoria de acceso aleatorio) de la VM será de 2048 MB o 2 GB.

El disco virtual de la VM se guardará en el /kvm/disco/centos8-01.img archivo. El disco virtual se trata 10 GB de tamaño y el formato es QCOW2 (QEMU Copy-on-write v2).

Se puede acceder a la máquina virtual a través del protocolo de escritorio remoto VNC (Virtual Network Computing), y el servidor VNC escuchará en todas las interfaces de red disponibles configuradas en su host KVM.

El host KVM no intentará conectarse automáticamente a la máquina virtual una vez que se cree la máquina virtual. La máquina virtual seguirá funcionando en segundo plano.

Use la virtualización completa para la máquina virtual. Esto hará que las máquinas virtuales funcionen mejor.

Use la imagen ISO CentOS 8 anteriormente descargada como la ROM virtual de CD/DVD de la máquina virtual. Esto se utiliza para instalar CentOS 8 en la máquina virtual.

Establece el orden de arranque de la máquina virtual. La primera entrada de arranque es la ROM Virtual CD/DVD, y luego el disco duro virtual. Por lo tanto, la máquina virtual podrá arrancar desde la imagen ISO Centos 8 e instalar CentOS 8 en el disco duro.

Esas son todas las opciones que necesita para crear una máquina virtual KVM.

Una vez que corres el Virt-Install Comando, KVM debe comenzar a crear la máquina virtual. Esto puede llevar un tiempo, dependiendo de la configuración de su máquina virtual.

En este punto, se debe crear la máquina virtual KVM.

Como puede ver, la máquina virtual recién creada CENTOS8-01 Esta corriendo.

Ahora, puede conectarse a la máquina virtual utilizando cualquier programa de cliente VNC e instalar CentOS 8 en ella. Para conectarse a la máquina virtual a través de VNC, debe conocer el número de puerto VNC de la máquina virtual.

Para encontrar el número de puerto VNC de la máquina virtual KVM CENTOS8-01, Ejecute el siguiente comando:

$ Virsh VNCDisplay CentOS8-01

Como puede ver, el número de puerto VNC del CENTOS8-01 la máquina virtual es 1.

Aquí, puerto 0 Puerto de medios 5900. De la misma manera, puerto 1 Puerto de medios 5901, etcétera.

Como puede ver, la máquina virtual KVM CENTOS8-01 se ejecuta en el puerto 5901 (: 1).

$ sudo netstat -tln

Si su host KVM ejecuta el sistema operativo CentOS 8, puede permitir el acceso al puerto 5901 Con el siguiente comando:

$ sudo firewall-cmd --add-puer = 5901/tcp --permanent

Para que los cambios en el firewall entren en vigencia, ejecute el siguiente comando:

$ sudo firewall-cmd--Reload

Si su host KVM está ejecutando el Ubuntu 20.04 Sistema operativo LTS, puede permitir el acceso al puerto 5901 Con el siguiente comando:

$ sudo UFW Permitir 5901/TCP

Para que los cambios en el firewall entren en vigencia, ejecute el siguiente comando:

$ sudo ufw recargar

Encuentre la dirección IP de su host KVM con el siguiente comando:

$ hostname -i | tr "" "\ n"

Mi red doméstica está utilizando la subred de red 192.168.20.24/04. Entonces, la dirección IP de mi host KVM es 192.168.20.131. Las otras direcciones IP son puentes de red privados del host KVM.

Abra cualquier programa de cliente VNC y conecte a la dirección 192.168.20.131: 1.

Debería ver la ventana de instalación de CentOS 8, como se muestra en la captura de pantalla a continuación. Puede instalar CentOS 8 en la máquina virtual KVM como lo haría normalmente.

Estoy instalando la versión mínima del servidor de CentOS 8 para la demostración en este artículo.

Se está instalando CentOS 8 en la máquina virtual KVM CENTOS8-01, Como puede ver en la captura de pantalla a continuación. Esto puede tardar un tiempo en completarse.

Una vez que se instala CentOS 8 en la máquina virtual, haga clic en Reiniciar.

La máquina virtual KVM CENTOS8-01 debe encenderse automáticamente, como puede ver en la captura de pantalla a continuación.

$ sudo Virsh List -Todo

Iniciar el CENTOS8-01 Máquina virtual KVM con el siguiente comando:

$ Virsh Start CentOS8-01

Ahora puede conectarse al CENTOS8-01 máquina virtual desde un cliente VNC, como antes. Como puede ver, el servidor mínimo de CentOS 8 se ejecuta bien en la máquina virtual KVM.

Instalación del servidor SSH en la máquina virtual CentOS 8

El objetivo principal de este artículo es conectarse a una máquina virtual CentOS de 8 KVM a través de SSH. Debe tener un servidor SSH instalado en su máquina virtual CentOS de 8 KVM para poder conectarse a él a través de SSH.

Instale el servidor OpenSSH en su máquina virtual CentOS 8 KVM con el siguiente comando:

$ sudo DNF Install OpenSSH -Server -y

El servidor OpenSSH ahora se debe instalar. En mi caso, ya está instalado.

Confirmar que el SSHD el servicio es correr y activado Con el siguiente comando:

$ sudo systemctl sshd

Si el SSHD El servicio no se está ejecutando, puede iniciarlo con el siguiente comando:

$ sudo systemctl start sshd

Si el SSHD El servicio está deshabilitado, puede habilitarlo con el siguiente comando:

$ sudo systemctl habilita sshd

Configuración del firewall de la máquina virtual CentOS 8

Debe configurar el firewall de la máquina virtual para permitir el acceso al puerto SSH. De lo contrario, no podrá conectarse a la máquina virtual a través de SSH, incluso si todas las configuraciones están bien.

Para permitir el acceso SSH a la máquina virtual KVM CENTOS8-01, Ejecute el siguiente comando:

$ sudo firewall-cmd --add-service = ssh --permanent

Para que los cambios en el firewall entren en vigencia, ejecute el siguiente comando:

$ sudo firewall-cmd--Reload

Método 1: Acceso a máquinas virtuales a través de túneles SSH

Por defecto, KVM utiliza el puente de red privado por defecto para establecer contactos las máquinas virtuales. La subred de la dirección IP del puente de red privada KVM por defecto no es accesible desde una red doméstica. Solo es accesible desde un host KVM. Entonces, para SSH en su máquina virtual CentOS de 8 KVM desde otra computadora (en su red doméstica), debe omitir la conexión a través de un host KVM. Esto se llama túnel ssh y funciona de manera similar a una VPN.

Para que el túnel SSH funcione, su host KVM debe tener un servidor SSH instalado y debe tener acceso SSH al host KVM.

Si su host KVM se ejecuta CentOS 8, puede instalar el servidor OpenSSH en su host KVM con el siguiente comando:

$ sudo DNF Install OpenSSH -Server -y

Si su host KVM está ejecutando Ubuntu 20.04 LTS, luego puede instalar el servidor OpenSSH en su host KVM con el siguiente comando:

$ sudo apt instalación openssh -server -y

Confirmar que el SSHD el servicio es correr y activado Con el siguiente comando:

$ sudo systemctl sshd

Si el SSHD El servicio no se está ejecutando, puede iniciarlo con el siguiente comando:

$ sudo systemctl start sshd

Si el SSHD El servicio está deshabilitado, puede habilitarlo con el siguiente comando:

$ sudo systemctl habilita sshd

Es posible que deba configurar el firewall de su host KVM para permitir el acceso SSH.

Si su host KVM usa el sistema operativo CentOS 8, ejecute el siguiente comando para configurar el firewall:

$ sudo firewall-cmd --add-service = ssh --permanent

Para que los cambios entren en vigencia, ejecute el siguiente comando:

$ sudo firewall-cmd--Reload

Si su host KVM usa el Ubuntu 20.04 Sistema operativo LTS, ejecute el siguiente comando para configurar el firewall:

$ sudo UFW Permitir SSH

Para que los cambios entren en vigencia, ejecute el siguiente comando:

$ sudo ufw recargar

Tu máquina virtual Centos 8 KVM CENTOS8-01 puede estar encendido.

$ sudo Virsh List -Todo

Si ese es el caso, puede iniciar la máquina virtual con el siguiente comando:

$ sudo Virsh Start CentOS8-01

Conéctese a su máquina virtual CentOS 8 con un cliente VNC y ejecute el siguiente comando en la máquina virtual para encontrar su dirección IP privada:

$ hostname -i

En mi caso, la dirección IP privada de mi máquina virtual CentOS de 8 kvm es 192.168.122.89. Esto puede ser diferente para ti.

Encuentre la dirección IP de su host KVM con el siguiente comando:

$ hostname -i | tr "" "\ n"

En mi caso, la dirección IP es 192.168.20.131. Sé esto porque mi red doméstica está usando la subred 192.168.20.24/04.

Para hacer un túnel a la máquina virtual CentOS 8 KVM a través del host KVM, ejecute el siguiente comando desde su computadora:

$ ssh -l 2200: 192.168.122.89:22 [email protected]

Aquí el -L La opción se usa para decirle al SSH que realice el reenvío de puertos locales.

Esto reenviará todas las solicitudes provenientes del hostil puerto 2200 hacia el puerto 22 de la máquina virtual CentOS 8 KVM, que tiene la dirección IP privada 192.168.122.89.

Dado que la computadora no tiene acceso directo a la subred de red de la máquina virtual CentOS 8 KVM 192.168.122.24/04, Tunela la solicitud a través del host KVM, que tiene acceso directo a esa subred de red.

Aquí, 192.168.20.131 es la dirección IP del host KVM y pala es el nombre de usuario de inicio de sesión de SSH del host KVM.

Una vez que ejecute el comando, se le puede hacer la siguiente pregunta. Tipo y presionar .

Escriba la contraseña del usuario de inicio de sesión de su host KVM y presione .

Ahora debería estar conectado al host KVM a través de SSH.

Ahora, puede ssh en su máquina virtual CentOS 8 KVM en la hostil puerto 2200 como sigue:

$ ssh shovon@localhost -p 2200

Aquí, pala es el nombre de usuario de inicio de sesión de la máquina virtual CentOS 8 KVM.

Una vez que ejecute el comando, se le puede hacer la siguiente pregunta. Tipo y presionar .

Escriba la contraseña del usuario de inicio de sesión de su máquina virtual CentOS 8 KVM y presione .

Ahora debe estar conectado a la máquina virtual CentOS de 8 KVM que se ejecuta en su host KVM a través de SSH, como puede ver en la captura de pantalla a continuación.

Puedes ejecutar cualquier comando que quieras aquí también.

Método 2: Acceso a máquinas virtuales a través de KVM Public Network Bridge

Si desea acceso completo a su máquina virtual CentOS 8 KVM, puede configurar un puente de red KVM público. Un puente de red público KVM actúa como un interruptor de red. Su máquina virtual CentOS de 8 KVM obtendrá una dirección IP del mismo servidor DHCP que su red doméstica y, en la misma red, subred que su red doméstica. Por lo tanto, será accesible desde todos los dispositivos conectados a su red doméstica.

Ya he creado un puente de red pública de KVM público y configuré mi máquina virtual CentOS de 8 kvm para usar el puente. Explico el proceso de crear el puente de red pública de KVM en mi artículo Cómo crear una interfaz CentOS de puente en red CentOS de 8 KVM. Asegúrate de verlo.

Una vez que haya creado un puente de red pública KVM, debe configurar su máquina virtual CentOS 8 para usar el puente. Antes de configurar su máquina virtual CentOS 8 CENTOS8-01, Compruebe si la máquina virtual CentOS de 8 KVM se está ejecutando con el siguiente comando:

$ sudo Virsh List -All

Como puede ver, la máquina virtual CentOS 8 KVM CENTOS8-01 Esta corriendo. Deberíamos detenerlo antes de configurarlo.

Puede apagar su máquina virtual CentOS de 8 kvm CENTOS8-01 Con el siguiente comando:

$ sudo Virsh CentOS8-01

Como puede ver, la máquina virtual CentOS 8 KVM está encendida.

$ sudo Virsh List -Todo

Por defecto, la máquina virtual CentOS 8 KVM usa la por defecto puente de red privado. Lo configuraré para usar el público Puente de red que ya he creado.

$ sudo virsh net-list-todo

Para editar la configuración de la máquina virtual CentOS 8 KVM, ejecute el siguiente comando:

$ sudo virsh edit CentOS8-01

Encuentra el interfaz sección, como se marca en la captura de pantalla a continuación. Cambiar el fuente hacer de por defecto a público.

NOTA: El archivo de configuración se abre con el editor de texto VI de forma predeterminada. Para editar el archivo de configuración en VI, presione i ir a INSERTAR modo. Para guardar el archivo de configuración, presione , escribir : WQ!, y luego presiona .

La configuración de la máquina virtual ahora debe cambiarse.

Inicie la máquina virtual CentOS 8 KVM con el siguiente comando:

$ sudo Virsh Start CentOS8-01

Ahora, conéctese a su máquina virtual CentOS de 8 KVM usando un cliente VNC. Verifique la dirección IP de la máquina virtual con el siguiente comando:

$ hostname -i

Como puede ver, la dirección IP es 192.168.20.133. Esta dirección IP fue suministrada por el servidor DHCP de mi red doméstica. Esta es una dirección IP de la subred de red 192.168.20.24/04, cuál es la subred de mi red doméstica.

Ahora, puede conectarse a la máquina virtual CentOS de 8 KVM desde cualquier computadora conectada a su red doméstica, de la siguiente manera:

$ ssh [email protected]

Aquí, pala es el nombre de usuario de inicio de sesión de la máquina virtual CentOS 8 KVM.

Una vez que ejecute el comando, se le puede hacer la siguiente pregunta. Tipo y presionar .

Escriba la contraseña del usuario de inicio de sesión de su máquina virtual CentOS 8 KVM y presione .

Ahora debe estar conectado a la máquina virtual CentOS de 8 KVM que se ejecuta en su host KVM a través de SSH, como puede ver en la captura de pantalla a continuación.

Puedes ejecutar cualquier comando que quieras aquí también.

Conclusión

Este artículo le mostró cómo crear una máquina virtual KVM Centos 8 y conectarse a la máquina virtual a través de SSH. Cuando no se puede acceder a la máquina virtual CentOS 8 KVM desde la red doméstica (utiliza un puente de red privado), debe usar el túnel SSH para conectarse a la máquina virtual KVM usando SSH. Cuando desee acceso completo a la máquina virtual CentOS 8 KVM, puede configurar un puente de red público y configurar la máquina virtual para usar el puente. De esta manera, su máquina virtual KVM puede ser accesible desde toda su red doméstica.