KVM

SSH de máquina local para virtual via KVM e CentOS 8 Guest

SSH de máquina local para virtual via KVM e CentOS 8 Guest
Por padrão, as máquinas virtuais KVM usam redes NAT privadas, que só são acessíveis a partir do host KVM. Então, você não pode acessar as máquinas virtuais KVM de sua rede doméstica. Para fazer SSH em máquinas virtuais em execução em seu host KVM, existem dois métodos para fazer isso: tunelamento SSH e configuração de uma ponte de rede KVM pública. Este artigo mostra como fazer SSH em uma máquina virtual KVM CentOS 8 a partir de sua rede doméstica por meio de encapsulamento SSH e usando uma ponte de rede KVM pública.

Pré-requisitos

Para experimentar os exemplos neste artigo, você deve ter o KVM instalado em seu computador. Se você não tem KVM instalado em seu computador, você pode ler os seguintes artigos em LinuxHint.com para obter assistência na instalação do KVM na distribuição Linux desejada.

- Instale KVM no Ubuntu 20.04

- Instale KVM no CentOS 8

Criando uma máquina virtual CentOS 8 KVM

Esta seção mostra como criar uma máquina virtual CentOS 8 KVM para testar a conectividade SSH.

Primeiro, baixe a imagem de instalação ISO do CentOS 8. Para manter todos os arquivos / dados da máquina virtual organizados, é uma boa idéia armazenar a imagem ISO no / kvm / iso / diretório.

Navegue até o / kvm / iso / diretório com o seguinte comando:

$ cd / kvm / iso

Você pode encontrar o link para a imagem de instalação do CentOS 8 ISO no site oficial do ISO do CentOS.

Assim que a página carregar, clique no espelho CentOS 8 mais próximo.

Todas as imagens de instalação ISO do CentOS 8 disponíveis devem ser listadas.

Vou baixar a imagem de instalação do NetBoot ISO do CentOS 8 para este artigo. Para instalar o CentOS 8 em uma máquina virtual KVM usando a imagem de instalação ISO do NetBoot, a máquina virtual requer conectividade com a Internet.

Se você não quiser configurar a rede durante a instalação do CentOS 8 na máquina virtual, selecione o mínimo ou o DVD Imagem de instalação ISO do CentOS 8.

Clique com o botão direito (RMB) no arquivo ISO para baixar e copiar o link do arquivo ISO.

Baixe a imagem de instalação do CentOS 8 ISO usando wget, do seguinte modo:

$ sudo wget http: // espelho.dhakacom.com / centos /
8.2.2004 / isos / x86_64 / CentOS-8.2.2004-x86_64-boot.iso

wget deve começar a baixar a imagem ISO do CentOS 8. Vai demorar um pouco para ser concluído.

Neste ponto, a imagem ISO do CentOS 8 deve ser baixada.

A imagem CentOS 8 ISO está disponível no / kvm / iso / diretório, como você pode ver na imagem abaixo.

$ ls -lh

Depois que a imagem CentOS ISO for baixada, crie uma máquina virtual KVM com o seguinte comando:

$ sudo virt-install --name centos8-01 \
--os-type linux \
--os-variant centos8 \
--ram 2048 \
--disk / kvm / disk / centos8-01.img, dispositivo = disco, barramento = virtio, tamanho = 10, formato = qcow2 \
--gráficos vnc, ouvir = 0.0.0.0 \
--noautoconsole \
--hvm \
--cdrom / kvm / iso / CentOS-8.2.2004-x86_64-boot.iso \
--boot cdrom, hd

O nome da máquina virtual será centos8-01.

O tipo de sistema operacional é linux e a variante é centos8.

A RAM (memória de acesso aleatório) da VM será 2.048 MB ou 2 GB.

O disco virtual da VM será salvo no / kvm / disk / centos8-01.img Arquivo. O disco virtual é sobre 10 GB em tamanho e o formato é QCOW2 (QEMU Copy-On-Write v2).

A máquina virtual estará acessível via protocolo de desktop remoto VNC (Virtual Network Computing), e o servidor VNC estará ouvindo em todas as interfaces de rede disponíveis configuradas em seu host KVM.

O host KVM não tentará se conectar automaticamente à máquina virtual, uma vez que a máquina virtual é criada. A máquina virtual continuará funcionando em segundo plano.

Use virtualização completa para a máquina virtual. Isso fará com que as máquinas virtuais tenham um melhor desempenho.

Use a imagem ISO do CentOS 8 baixada anteriormente como o CD / DVD ROM virtual da máquina virtual. Isso é usado para instalar o CentOS 8 na máquina virtual.

Define a ordem de inicialização da máquina virtual. A primeira entrada de inicialização é o CD / DVD ROM virtual e, em seguida, o disco rígido virtual. Assim, a máquina virtual será capaz de inicializar a partir da imagem ISO do CentOS 8 e instalar o CentOS 8 no disco rígido.

Essas são todas as opções de que você precisa para criar uma máquina virtual KVM.

Depois de executar o virt-install comando, KVM deve começar a criar a máquina virtual. Isso pode demorar um pouco, dependendo da configuração da sua máquina virtual.

Neste ponto, a máquina virtual KVM deve ser criada.

Como você pode ver, a máquina virtual recém-criada centos8-01 está correndo.

Agora, você pode se conectar à máquina virtual usando qualquer programa cliente VNC e instalar o CentOS 8 nele. Para se conectar à máquina virtual via VNC, você precisa saber o número da porta VNC da máquina virtual.

Para encontrar o número da porta VNC da máquina virtual KVM centos8-01, execute o seguinte comando:

$ virsh vncdisplay centos8-01

Como você pode ver, o número da porta VNC do centos8-01 máquina virtual é 1.

Aqui, porto 0 significa porto 5900. Da mesma forma, porto 1 significa porto 5901, e assim por diante.

Como você pode ver, a máquina virtual KVM centos8-01 está rodando na porta 5901 (: 1).

$ sudo netstat -tln

Se o seu host KVM estiver executando o sistema operacional CentOS 8, você pode permitir o acesso à porta 5901 com o seguinte comando:

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

Para que as alterações do firewall entrem em vigor, execute o seguinte comando:

$ sudo firewall-cmd --reload

Se o seu host KVM estiver executando o Ubuntu 20.04 sistema operacional LTS, você pode permitir o acesso à porta 5901 com o seguinte comando:

$ sudo ufw allow 5901 / tcp

Para que as alterações do firewall entrem em vigor, execute o seguinte comando:

$ sudo ufw reload

Encontre o endereço IP do seu host KVM com o seguinte comando:

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

Minha rede doméstica está usando a sub-rede da rede 192.168.20.0/24. Então, o endereço IP do meu host KVM é 192.168.20.131. Os outros endereços IP são pontes de rede privada do host KVM.

Abra qualquer programa cliente VNC e conecte-se ao endereço 192.168.20.131: 1.

Você deve ver a janela de instalação do CentOS 8, conforme mostrado na imagem abaixo. Você pode instalar o CentOS 8 na máquina virtual KVM como faria normalmente.

Estou instalando a versão mínima de servidor do CentOS 8 para a demonstração neste artigo.

CentOS 8 está sendo instalado na máquina virtual KVM centos8-01, como você pode ver na imagem abaixo. Isso pode demorar um pouco para ser concluído.

Assim que o CentOS 8 estiver instalado na máquina virtual, clique em Reinício.

A máquina virtual KVM centos8-01 deve ser desligado automaticamente, como você pode ver na imagem abaixo.

lista de $ sudo virsh --todos

Comece o centos8-01 Máquina virtual KVM com o seguinte comando:

$ virsh start centos8-01

Agora, você pode se conectar ao centos8-01 máquina virtual de um cliente VNC, como antes. Como você pode ver, o servidor mínimo CentOS 8 está funcionando perfeitamente na máquina virtual KVM.

Instalando o Servidor SSH na Máquina Virtual CentOS 8

O principal objetivo deste artigo é conectar-se a uma máquina virtual CentOS 8 KVM via SSH. Você deve ter um servidor SSH instalado em sua máquina virtual CentOS 8 KVM para poder se conectar a ele via SSH.

Instale o servidor OpenSSH em sua máquina virtual CentOS 8 KVM com o seguinte comando:

$ sudo dnf install openssh-server -y

O servidor OpenSSH agora deve ser instalado. No meu caso ja esta instalado.

Confirme que o sshd serviço é corrida e ativado com o seguinte comando:

$ sudo systemctl status sshd

Se o sshd serviço não está sendo executado, você pode iniciá-lo com o seguinte comando:

$ sudo systemctl start sshd

Se o sshd serviço está desativado, você pode ativá-lo com o seguinte comando:

$ sudo systemctl enable sshd

Configurando o Firewall da Máquina Virtual CentOS 8

Você deve configurar o firewall da máquina virtual para permitir o acesso à porta SSH. Caso contrário, você não conseguirá se conectar à máquina virtual via SSH, mesmo se todas as configurações estiverem corretas.

Para permitir o acesso SSH à máquina virtual KVM centos8-01, execute o seguinte comando:

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

Para que as alterações do firewall entrem em vigor, execute o seguinte comando:

$ sudo firewall-cmd --reload

Método 1: acessando máquinas virtuais por meio de encapsulamento SSH

Por padrão, o KVM usa a ponte de rede privada padrão para colocar em rede as máquinas virtuais. A sub-rede do endereço IP da ponte de rede privada KVM padrão não está acessível a partir de uma rede doméstica. Só é acessível a partir de um host KVM. Então, para fazer SSH em sua máquina virtual CentOS 8 KVM de outro computador (em sua rede doméstica), você deve ignorar a conexão através de um host KVM. Isso é chamado de tunelamento SSH e funciona de forma semelhante a uma VPN.

Para que o túnel SSH funcione, seu host KVM deve ter um servidor SSH instalado e você deve ter acesso SSH ao host KVM.

Se seu host KVM estiver executando CentOS 8, você poderá instalar o servidor OpenSSH em seu host KVM com o seguinte comando:

$ sudo dnf install openssh-server -y

Se o seu host KVM estiver executando o Ubuntu 20.04 LTS, então você pode instalar o servidor OpenSSH em seu host KVM com o seguinte comando:

$ sudo apt install openssh-server -y

Confirme que o sshd serviço é corrida e ativado com o seguinte comando:

$ sudo systemctl status sshd

Se o sshd serviço não está sendo executado, você pode iniciá-lo com o seguinte comando:

$ sudo systemctl start sshd

Se o sshd serviço está desativado, você pode ativá-lo com o seguinte comando:

$ sudo systemctl enable sshd

Você pode ter que configurar o firewall do seu host KVM para permitir o acesso SSH a ele.

Se o seu host KVM usa o sistema operacional CentOS 8, execute o seguinte comando para configurar o firewall:

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

Para que as alterações tenham efeito, execute o seguinte comando:

$ sudo firewall-cmd --reload

Se o seu host KVM usa o Ubuntu 20.04 Sistema operacional LTS, execute o seguinte comando para configurar o firewall:

$ sudo ufw permitir ssh

Para que as alterações tenham efeito, execute o seguinte comando:

$ sudo ufw reload

Sua máquina virtual CentOS 8 KVM centos8-01 pode estar desligado.

lista de $ sudo virsh --todos

Se for esse o caso, você pode iniciar a máquina virtual com o seguinte comando:

$ sudo virsh start centos8-01

Conecte-se à sua máquina virtual CentOS 8 com um cliente VNC e execute o seguinte comando na máquina virtual para encontrar seu endereço IP privado:

$ hostname -I

No meu caso, o endereço IP privado da minha máquina virtual CentOS 8 KVM é 192.168.122.89. Isso pode ser diferente para você.

Encontre o endereço IP do seu host KVM com o seguinte comando:

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

No meu caso, o endereço IP é 192.168.20.131. Eu sei disso porque minha rede doméstica está usando a sub-rede 192.168.20.0/24.

Para fazer um túnel para a máquina virtual CentOS 8 KVM por meio do host KVM, execute o seguinte comando em seu computador:

$ ssh -L 2200: 192.168.122.89:22 shovon @ 192.168.20.131

Aqui o -eu opção é usada para dizer ao SSH para realizar o encaminhamento de porta local.

Isso encaminhará todas as solicitações provenientes do localhost porta 2200 para o porto 22 da máquina virtual CentOS 8 KVM, que tem o endereço IP privado 192.168.122.89.

Como o computador não tem acesso direto à sub-rede da rede da máquina virtual CentOS 8 KVM 192.168.122.0/24, ele canaliza a solicitação por meio do host KVM, que tem acesso direto a essa sub-rede da rede.

Aqui, 192.168.20.131 é o endereço IP do host KVM e é o nome de usuário de login SSH do host KVM.

Depois de executar o comando, pode ser feita a seguinte pergunta. Modelo sim e pressione .

Digite a senha do usuário de login do seu host KVM e pressione .

Agora você deve estar conectado ao host KVM via SSH.

Agora, você pode SSH em sua máquina virtual CentOS 8 KVM no localhost porta 2200 do seguinte modo:

$ ssh shovon @ localhost -p 2200

Aqui, é o nome de usuário de login da máquina virtual CentOS 8 KVM.

Depois de executar o comando, pode ser feita a seguinte pergunta. Modelo sim e pressione .

Digite a senha do usuário de login de sua máquina virtual CentOS 8 KVM e pressione .

Agora você deve estar conectado à máquina virtual CentOS 8 KVM rodando em seu host KVM via SSH, como você pode ver na captura de tela abaixo.

Você pode executar qualquer comando que quiser aqui, também.

Método 2: Acessando máquinas virtuais por meio da ponte de rede pública KVM

Se você deseja acesso total à sua máquina virtual CentOS 8 KVM, você pode configurar uma ponte de rede KVM pública. Uma ponte de rede KVM pública atua como um switch de rede. Sua máquina virtual CentOS 8 KVM obterá um endereço IP do mesmo servidor DHCP que sua rede doméstica e, na mesma rede, uma sub-rede de sua rede doméstica. Assim, ele estará acessível a partir de qualquer dispositivo conectado à sua rede doméstica.

Já criei uma ponte de rede pública KVM público e configurei minha máquina virtual CentOS 8 KVM para usar a ponte. Eu explico o processo de criação da ponte de rede pública KVM em meu artigo Como criar uma interface de ponte em rede CentOS 8 KVM. Certifique-se de dar uma olhada.

Depois de criar uma ponte de rede pública KVM, você deve configurar sua máquina virtual CentOS 8 para usar a ponte. Antes de configurar sua máquina virtual CentOS 8 centos8-01, verifique se a máquina virtual CentOS 8 KVM está em execução com o seguinte comando:

$ sudo virsh list -all

Como você pode ver, a máquina virtual CentOS 8 KVM centos8-01 está correndo. Devemos pará-lo antes de configurá-lo.

Você pode desligar sua máquina virtual CentOS 8 KVM centos8-01 com o seguinte comando:

$ sudo virsh shutdown centos8-01

Como você pode ver, a máquina virtual CentOS 8 KVM está desligada.

lista de $ sudo virsh --todos

Por padrão, a máquina virtual CentOS 8 KVM usa o padrão ponte de rede privada. Vou configurá-lo para usar o público ponte de rede que já criei.

$ sudo virsh net-list --all

Para editar a configuração da máquina virtual CentOS 8 KVM, execute o seguinte comando:

$ sudo virsh editar centos8-01

Encontre o interface seção, conforme marcado na captura de tela abaixo. Mudar o fonte rede de padrão para público.

NOTA: O arquivo de configuração abre com o editor de texto Vi por padrão. Para editar o arquivo de configuração no Vi, pressione eu ir para INSERIR modo. Para salvar o arquivo de configuração, pressione , digitar : wq!, e então pressione .

A configuração da máquina virtual agora deve ser alterada.

Inicie a máquina virtual CentOS 8 KVM com o seguinte comando:

$ sudo virsh start centos8-01

Agora, conecte-se à sua máquina virtual CentOS 8 KVM usando um cliente VNC. Verifique o endereço IP da máquina virtual com o seguinte comando:

$ hostname -I

Como você pode ver, o endereço IP é 192.168.20.133. Este endereço IP foi fornecido pelo servidor DHCP da minha rede doméstica. Este é um endereço IP da sub-rede da rede 192.168.20.0/24, que é a sub-rede da minha rede doméstica.

Agora, você pode se conectar à máquina virtual CentOS 8 KVM de qualquer computador conectado à sua rede doméstica, da seguinte maneira:

$ ssh shovon @ 192.168.20.133

Aqui, é o nome de usuário de login da máquina virtual CentOS 8 KVM.

Depois de executar o comando, pode ser feita a seguinte pergunta. Modelo sim e pressione .

Digite a senha do usuário de login da sua máquina virtual CentOS 8 KVM e pressione .

Agora você deve estar conectado à máquina virtual CentOS 8 KVM rodando em seu host KVM via SSH, como você pode ver na captura de tela abaixo.

Você pode executar qualquer comando que quiser aqui, também.

Conclusão

Este artigo mostrou como criar uma máquina virtual KVM CentOS 8 e se conectar à máquina virtual via SSH. Quando a máquina virtual KVM CentOS 8 não está acessível a partir da rede doméstica (ela usa uma ponte de rede privada), você deve usar o encapsulamento SSH para se conectar à máquina virtual KVM usando SSH. Quando você deseja acesso total à máquina virtual CentOS 8 KVM, pode configurar uma ponte de rede pública e configurar a máquina virtual para usar a ponte. Desta forma, sua máquina virtual KVM pode ser acessível de toda a sua rede doméstica.

Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...
Como usar o AutoKey para automatizar jogos Linux
AutoKey é um utilitário de automação de desktop para Linux e X11, programado em Python 3, GTK e Qt. Usando sua funcionalidade de script e MACRO, você ...