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 privadas de NAT, que só são acessíveis a partir do host KVM. Portanto, você não pode acessar as máquinas virtuais KVM da sua rede doméstica. Para SSH em máquinas virtuais em execução no seu host KVM, há dois métodos para fazer isso: ssh tunelamento e configuração de uma ponte de rede pública KVM. Este artigo mostra como fazer SSH em uma máquina virtual do KVM CENTOS 8 da sua rede doméstica via tunelamento SSH e usando uma ponte de rede pública KVM.

Pré -requisitos

Para experimentar os exemplos deste artigo, você deve ter o KVM instalado no seu computador. Se você não possui KVM instalado no seu computador, pode ler os seguintes artigos em Linuxhint.com a assistência na instalação do KVM na distribuição Linux desejada.

- Instale o KVM no Ubuntu 20.04

- Instale o KVM no CentOS 8

Criando uma máquina virtual do CentOS 8 KVM

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

Primeiro, faça o download da 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 ISO do CentOS 8 no site oficial da ISO do CentOS.

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

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 do Netboot ISO, a máquina virtual requer conectividade à Internet.

Se você não deseja 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 do mouse (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 completar.

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

A imagem ISO do CentOS 8 está disponível no /KVM/ISO/ diretório, como você pode ver na captura de tela abaixo.

$ ls -lh

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

$ sudo virt-Install--name CENTOS8-01 \
--Linux do tipo OS \
--OS-Variant CENTOS8 \
--RAM 2048 \
--disco/kvm/disk/CentOS8-01.img, dispositivo = disco, barramento = virtio, tamanho = 10, formato = qcow2 \
--Gráficos VNC, ouça = 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ória) da VM será 2048 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 através do protocolo de desktop remoto VNC (Virtual Network Computing), e o servidor VNC estará ouvindo em todas as interfaces de rede disponíveis configuradas no seu host KVM.

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

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

Use a imagem ISO do CentOS 8 anteriormente baixada como o CD/DVD 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 virtual ROM e, em seguida, o disco rígido virtual. Portanto, a máquina virtual poderá 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 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 sua configuração de 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 do cliente VNC e instalar o CentOS 8. Para conectar -se à máquina virtual via VNC, você precisa conhecer 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, porta 0 significa porta 5900. Da mesma maneira, porto 1 significa porta 5901, e assim por diante.

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

$ sudo netstat -tln

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

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

Para que as mudanças no 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 permitir 5901/tcp

Para que as mudanças no firewall entrem em vigor, execute o seguinte comando:

$ sudo ufw recarregar

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 de 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 privadas do host KVM.

Abra qualquer programa do 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 captura de tela abaixo. Você pode instalar o CentOS 8 na máquina virtual KVM como normalmente.

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

O CentOS 8 está sendo instalado na máquina virtual KVM CentOS8-01, Como você pode ver na captura de tela abaixo. Isso pode demorar um pouco para completar.

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

A máquina virtual KVM CentOS8-01 deve ser desligado automaticamente, como você pode ver na captura de tela abaixo.

$ sudo virsh list --l

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 do CentOS 8 está funcionando bem na máquina virtual KVM.

Instalando o servidor SSH na máquina virtual do CentOS 8

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

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

$ sudo dnf install openSsh -server -y

O servidor OpenSsh agora deve ser instalado. No meu caso, ele já está instalado.

Confirme que o sshd serviço é correndo e habilitado com o seguinte comando:

$ sudo systemctl status sshd

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

$ sudo systemctl start sshd

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

$ sudo systemctl habilitar sshd

Configurando o firewall da máquina virtual do CentOS 8

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

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

$ sudo firewall-cmd --Add-Service = ssh --permanente

Para que as mudanças no firewall entrem em vigor, execute o seguinte comando:

$ sudo firewall-cmd--reload

Método 1: Acessando máquinas virtuais via tunelamento SSH

Por padrão, o KVM usa a ponte de rede privada padrão Para networking, as máquinas virtuais. A sub -rede de endereço IP da ponte de rede privada KVM padrão não é acessível a partir de uma rede doméstica. É acessível apenas a partir de um host KVM. Então, para SSH em sua máquina virtual do 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 semelhante a uma VPN.

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

Se o seu host KVM estiver executando o CentOS 8, você poderá instalar o servidor OpenSSH no 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 no seu host KVM com o seguinte comando:

$ sudo apt install OpenSsh -Server -y

Confirme que o sshd serviço é correndo e habilitado com o seguinte comando:

$ sudo systemctl status sshd

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

$ sudo systemctl start sshd

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

$ sudo systemctl habilitar sshd

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

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

$ sudo firewall-cmd --Add-Service = ssh --permanente

Para que as mudanças entrem em vigor, execute o seguinte comando:

$ sudo firewall-cmd--reload

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

$ sudo ufw permitir ssh

Para que as mudanças entrem em vigor, execute o seguinte comando:

$ sudo ufw recarregar

Sua máquina virtual do CentOS 8 KVM CentOS8-01 pode ser desligado.

$ sudo virsh list --l

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 do 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 do meu CentOS 8 KVM Virtual Machine é 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 do CentOS 8 KVM através do host KVM, execute o seguinte comando do seu computador:

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

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

Isso encaminhará todos os pedidos vindos do LocalHost porta 2200 para porta 22 da máquina virtual do CentOS 8 KVM, que possui o endereço IP privado 192.168.122.89.

Como o computador não tem acesso direto à sub -rede de rede da máquina virtual do CentOS 8 KVM 192.168.122.0/24, Ele túne a solicitação através do host KVM, que tem acesso direto a essa sub -rede de rede.

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

Depois de executar o comando, você pode ser feito a seguinte pergunta. Tipo 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 do CentOS 8 KVM no LocalHost porta 2200 do seguinte modo:

$ ssh shovon@localhost -p 2200

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

Depois de executar o comando, você pode ser feito a seguinte pergunta. Tipo sim e pressione .

Digite a senha do usuário de login do seu CentOS 8 KVM Virtual Machine e pressione .

Agora você deve estar conectado à máquina virtual do CentOS 8 KVM em execução no 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 via KVM Public Network Bridge

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

Eu já criei uma ponte de rede pública KVM público e configurou minha máquina virtual do CentOS 8 KVM para usar a ponte. Eu explico o processo de criação da KVM Public Network Bridge em meu artigo Como criar uma interface de ponte em rede CentOS 8 KVM. Não deixe de conferir.

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 do CentOS 8 CentOS8-01, Verifique se a máquina virtual do CentOS 8 KVM está funcionando com o seguinte comando:

$ sudo virsh list -tudo

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

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

$ sudo virsh Shutdown CENTOS8-01

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

$ sudo virsh list --l

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

$ sudo virsh list list --ath

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

$ sudo virsh edit CENTOS8-01

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

OBSERVAÇÃO: O arquivo de configuração é aberto com o VI Text Editor 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 depois pressione .

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

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

$ sudo virsh Start CentOS8-01

Agora, conecte -se à sua máquina virtual do 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 de rede 192.168.20.0/24, qual é a sub -rede da minha rede doméstica.

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

$ ssh [email protected]

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

Depois de executar o comando, você pode ser feito a seguinte pergunta. Tipo sim e pressione .

Digite a senha do usuário de login do seu CentOS 8 KVM Virtual Machine e pressione .

Agora você deve estar conectado à máquina virtual do CentOS 8 KVM em execução no 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 conectar -se à máquina virtual via SSH. Quando a máquina virtual do CentOS 8 KVM não é acessível a partir da rede doméstica (usa uma ponte de rede privada), você deve usar o tunelamento SSH para se conectar à máquina virtual KVM usando SSH. Quando você deseja acesso total à máquina virtual do CentOS 8 KVM, você pode configurar uma ponte de rede pública e configurar a máquina virtual para usar a ponte. Dessa forma, sua máquina virtual KVM pode ser acessível em toda a sua rede doméstica.