SSH de la machine locale au virtuel via KVM et Centos 8 Guest

SSH de la machine locale au virtuel via KVM et Centos 8 Guest
Par défaut, les machines virtuelles KVM utilisent des réseaux NAT privés, qui ne sont accessibles que de l'hôte KVM. Donc, vous ne pouvez pas accéder aux machines virtuelles KVM depuis votre réseau domestique. Pour SSH en machines virtuelles fonctionnant sur votre hôte KVM, il existe deux méthodes pour le faire: SSH Tunneling et configurer un pont de réseau KVM public. Cet article vous montre comment SSH dans une machine virtuelle KVM CentOS 8 à partir de votre réseau domestique via SSH Tunneling et à l'aide d'un pont de réseau KVM public.

Conditions préalables

Pour essayer les exemples de cet article, vous devez faire installer KVM sur votre ordinateur. Si vous n'avez pas installé KVM sur votre ordinateur, vous pouvez lire les articles suivants à Linuxhint.com pour obtenir de l'aide sur l'installation de KVM sur la distribution Linux souhaitée.

- Installez KVM sur Ubuntu 20.04

- Installez KVM sur Centos 8

Création d'une machine virtuelle CentOS 8 KVM

Cette section vous montre comment créer une machine virtuelle CentOS 8 KVM pour tester la connectivité SSH.

Tout d'abord, téléchargez l'image d'installation ISO CENTOS 8. Pour garder tous les fichiers / données de la machine virtuelle, c'est une bonne idée de stocker l'image ISO dans le / kvm / iso / annuaire.

Accédez à la / kvm / iso / Répertoire avec la commande suivante:

$ CD / KVM / ISO

Vous pouvez trouver le lien vers l'image d'installation ISO CENTOS 8 sur le site officiel ISO de CentOS.

Une fois que la page se charge, cliquez sur votre miroir Centos 8 le plus proche.

Toutes les images d'installation ISO CentOS 8 disponibles doivent être répertoriées.

Je téléchargerai l'image d'installation ISO Netboot de CentOS 8 pour cet article. Pour installer CentOS 8 sur une machine virtuelle KVM à l'aide de l'image d'installation ISO Netboot, la machine virtuelle nécessite une connectivité Internet.

Si vous ne souhaitez pas configurer le réseau lors de l'installation de CentOS 8 sur la machine virtuelle, sélectionnez le minimal ou la DVD Image d'installation ISO de CentOS 8.

Cliquez avec le bouton droit sur le fichier ISO pour télécharger et copier le lien du fichier ISO.

Téléchargez l'image d'installation ISO CENTOS 8 en utilisant wget, comme suit:

$ sudo wget http: // miroir.dhakacom.com / centos /
8.2.2004 / isos / x86_64 / centos-8.2.2004-x86_64-boot.ISO

WGET devrait commencer à télécharger l'image ISO CENTOS 8. Il faudra un certain temps pour terminer.

À ce stade, l'image ISO CentOS 8 doit être téléchargée.

L'image ISO CENTOS 8 est disponible dans le / kvm / iso / Répertoire, comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ ls -lh

Une fois l'image CentOS ISO téléchargée, créez une machine virtuelle KVM avec la commande suivante:

$ sudo virgin-install --name Centos8-01 \
--Linux de type OS \
--OS-Variant CentOS8 \
--Ram 2048 \
--disque / kvm / disque / centos8-01.img, périphérique = disque, bus = virtio, taille = 10, format = qcow2 \
--graphiques vnc, écouter = 0.0.0.0 \
--noautoconsole \
--hvm \
--CDROM / KVM / ISO / CENTOS-8.2.2004-x86_64-boot.ISO \
--BOOT CDROM, HD

Le nom de la machine virtuelle sera CentOS8-01.

Le type de système d'exploitation est linux Et la variante est centos8.

La RAM (mémoire d'accès aléatoire) de la machine virtuelle sera de 2048 Mo ou 2 Go.

Le disque virtuel de la machine virtuelle sera enregistré dans le / kvm / disque / centos8-01.IMG déposer. Le disque virtuel est à propos 10 Go en taille et le format est Qcow2 (Qemu Copy-on-Write v2).

La machine virtuelle sera accessible via le protocole de bureau à distance VNC (Virtual Network Computing), et le serveur VNC écoutera sur toutes les interfaces réseau disponibles configurées sur votre hôte KVM.

L'hôte KVM n'essaiera pas automatiquement de se connecter à la machine virtuelle une fois la machine virtuelle créée. La machine virtuelle continuera à fonctionner en arrière-plan.

Utilisez la virtualisation complète pour la machine virtuelle. Cela rendra les machines virtuelles à mieux fonctionner.

Utilisez l'image ISO CENTOS 8 précédemment téléchargée comme la ROM Virtual CD / DVD de la machine virtuelle. Ceci est utilisé pour installer Centos 8 sur la machine virtuelle.

Définit l'ordre de démarrage de la machine virtuelle. La première entrée de démarrage est la ROM Virtual CD / DVD, puis le disque dur virtuel. Ainsi, la machine virtuelle pourra démarrer à partir de l'image ISO CentOS 8 et installer Centos 8 sur le disque dur.

C'est toutes les options dont vous avez besoin pour créer une machine virtuelle KVM.

Une fois que vous avez exécuté le verrouillage Commande, KVM devrait commencer à créer la machine virtuelle. Cela peut prendre un certain temps, en fonction de votre configuration de machine virtuelle.

À ce stade, la machine virtuelle KVM doit être créée.

Comme vous pouvez le voir, la machine virtuelle nouvellement créée CentOS8-01 est en cours d'exécution.

Maintenant, vous pouvez vous connecter à la machine virtuelle à l'aide de n'importe quel programme client VNC et installer CentOS 8 dessus. Pour vous connecter à la machine virtuelle via VNC, vous devez connaître le numéro de port VNC de la machine virtuelle.

Pour trouver le numéro de port VNC de la machine virtuelle KVM CentOS8-01, Exécutez la commande suivante:

$ virsh vncdisplay centos8-01

Comme vous pouvez le voir, le numéro de port VNC du CentOS8-01 La machine virtuelle est 1.

Ici, port 0 MAISON PORT 5900. De la même manière, le port 1 MAISON PORT 5901, et ainsi de suite.

Comme vous pouvez le voir, la machine virtuelle KVM CentOS8-01 fonctionne sur le port 5901 (:1).

$ sudo netstat -tln

Si votre hôte KVM exécute le système d'exploitation CENTOS 8, vous pouvez autoriser l'accès au port 5901 avec la commande suivante:

$ sudo Firewall-CMD --Add-Port = 5901 / TCP - Permanent

Pour que les modifications du pare-feu prennent effet, exécutez la commande suivante:

$ sudo Firewall-CMD - Reload

Si votre hôte KVM exécute l'Ubuntu 20.04 Système d'exploitation LTS, vous pouvez autoriser l'accès au port 5901 avec la commande suivante:

$ sudo ufw autoriser 5901 / tcp

Pour que les modifications du pare-feu prennent effet, exécutez la commande suivante:

$ sudo ufw rechargement

Trouvez l'adresse IP de votre hôte KVM avec la commande suivante:

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

Mon réseau domestique utilise le sous-réseau réseau 192.168.20.0/24. Donc, l'adresse IP de mon hôte KVM est 192.168.20.131. Les autres adresses IP sont des ponts de réseau privé de l'hôte KVM.

Ouvrez n'importe quel programme client VNC et connectez-vous à l'adresse 192.168.20.131: 1.

Vous devriez voir la fenêtre d'installation de Centos 8, comme indiqué dans la capture d'écran ci-dessous. Vous pouvez installer CentOS 8 sur la machine virtuelle KVM comme vous le feriez normalement.

J'installe la version du serveur minimal de Centos 8 pour la démonstration de cet article.

Centos 8 est installé dans la machine virtuelle KVM CentOS8-01, Comme vous pouvez le voir dans la capture d'écran ci-dessous. Cela peut prendre un certain temps pour terminer.

Une fois Centos 8 installé sur la machine virtuelle, cliquez Redémarrer.

La machine virtuelle KVM CentOS8-01 devrait être éteint automatiquement, comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ sudo virsh liste - tout

Commencer le CentOS8-01 Machine virtuelle KVM avec la commande suivante:

$ virsh start Centos8-01

Maintenant, vous pouvez vous connecter au CentOS8-01 machine virtuelle d'un client VNC, comme avant. Comme vous pouvez le voir, le serveur minimal CentOS 8 s'exécute très bien dans la machine virtuelle KVM.

Installation du serveur SSH sur la machine virtuelle CentOS 8

L'objectif principal de cet article est de se connecter à une machine virtuelle CentOS 8 KVM via SSH. Vous devez avoir un serveur SSH installé sur votre machine virtuelle CentOS 8 KVM pour pouvoir vous y connecter via SSH.

Installez le serveur OpenSSH sur votre machine virtuelle CentOS 8 KVM avec la commande suivante:

$ sudo dnf install openssh-server -y

Le serveur OpenSSH doit maintenant être installé. Dans mon cas, il est déjà installé.

Confirmer que le SSHD Le service est en cours et activé avec la commande suivante:

$ sudo systemctl status sshd

Si la SSHD Le service n'est pas en cours d'exécution, vous pouvez le démarrer avec la commande suivante:

$ sudo systemctl start sshd

Si la SSHD Le service est désactivé, vous pouvez l'activer avec la commande suivante:

$ sudo systemctl activer sshd

Configuration du pare-feu de la machine virtuelle Centos 8

Vous devez configurer le pare-feu de la machine virtuelle pour permettre l'accès au port SSH. Sinon, vous ne pourrez pas vous connecter à la machine virtuelle via SSH, même si toutes les configurations sont correctes.

Pour permettre à SSH d'accéder à la machine virtuelle KVM CentOS8-01, Exécutez la commande suivante:

$ sudo Firewall-CMD --Add-Service = SSH --Permanent

Pour que les modifications du pare-feu prennent effet, exécutez la commande suivante:

$ sudo Firewall-CMD - Reload

Méthode 1: Accès aux machines virtuelles via SSH Tunneling

Par défaut, KVM utilise le pont de réseau privé défaut Pour la mise en réseau, les machines virtuelles. Le sous-réseau d'adresse IP du pont de réseau privé KVM défaut n'est pas accessible à partir d'un réseau domestique. Il n'est accessible qu'à partir d'un hôte KVM. Ainsi, pour SSH dans votre machine virtuelle Centos 8 KVM à partir d'un autre ordinateur (dans votre réseau domestique), vous devez contourner la connexion via un hôte KVM. C'est ce qu'on appelle le tunneling SSH et fonctionne similaire à un VPN.

Pour que le tunneling SSH fonctionne, votre hôte KVM doit avoir un serveur SSH installé et vous devez avoir un accès SSH à l'hôte KVM.

Si votre hôte KVM exécute CentOS 8, vous pouvez installer le serveur OpenSSH sur votre hôte KVM avec la commande suivante:

$ sudo dnf install openssh-server -y

Si votre hôte KVM exécute Ubuntu 20.04 LTS, alors vous pouvez installer le serveur OpenSSH sur votre hôte KVM avec la commande suivante:

$ sudo apt install openssh-server -y

Confirmer que le SSHD Le service est en cours et activé avec la commande suivante:

$ sudo systemctl status sshd

Si la SSHD Le service n'est pas en cours d'exécution, vous pouvez le démarrer avec la commande suivante:

$ sudo systemctl start sshd

Si la SSHD Le service est désactivé, vous pouvez l'activer avec la commande suivante:

$ sudo systemctl activer sshd

Vous devrez peut-être configurer le pare-feu de votre hôte KVM pour permettre à SSH d'accéder à lui.

Si votre hôte KVM utilise le système d'exploitation CentOS 8, exécutez la commande suivante pour configurer le pare-feu:

$ sudo Firewall-CMD --Add-Service = SSH --Permanent

Pour que les modifications prennent effet, exécutez la commande suivante:

$ sudo Firewall-CMD - Reload

Si votre hôte KVM utilise l'Ubuntu 20.04 Système d'exploitation LTS, exécutez la commande suivante pour configurer le pare-feu:

$ sudo ufw autoriser SSH

Pour que les modifications prennent effet, exécutez la commande suivante:

$ sudo ufw rechargement

Votre machine virtuelle Centos 8 KVM CentOS8-01 peut être éteint.

$ sudo virsh liste - tout

Si tel est le cas, vous pouvez démarrer la machine virtuelle avec la commande suivante:

$ sudo virsh start Centos8-01

Connectez-vous à votre machine virtuelle CentOS 8 avec un client VNC et exécutez la commande suivante sur la machine virtuelle pour trouver son adresse IP privée:

$ hostname -i

Dans mon cas, l'adresse IP privée de ma machine virtuelle Centos 8 KVM est 192.168.122.89. Cela peut être différent pour vous.

Trouvez l'adresse IP de votre hôte KVM avec la commande suivante:

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

Dans mon cas, l'adresse IP est 192.168.20.131. Je le sais parce que mon réseau domestique utilise le sous-réseau 192.168.20.0/24.

Pour faire un tunnel sur la machine virtuelle CentOS 8 KVM via l'hôte KVM, exécutez la commande suivante à partir de votre ordinateur:

$ ssh -l 2200: 192.168.122.89:22 SHOVON @ 192.168.20.131

Ici le -L L'option est utilisée pour dire au SSH pour effectuer un transfert de port local.

Cela transmettra toutes les demandes provenant du hôte local port 2200 au port 22 de la machine virtuelle Centos 8 KVM, qui a l'adresse IP privée 192.168.122.89.

Puisque l'ordinateur n'a pas d'accès direct au sous-réseau réseau de la machine virtuelle CentOS 8 KVM 192.168.122.0/24, Il tue la demande via l'hôte KVM, qui a un accès direct à ce sous-réseau réseau.

Ici, 192.168.20.131 est l'adresse IP de l'hôte KVM et bousculade est le nom d'utilisateur de connexion SSH de l'hôte KVM.

Une fois que vous avez exécuté la commande, on peut vous poser la question suivante. Taper Oui et presser .

Tapez le mot de passe de l'utilisateur de connexion de votre hôte KVM et appuyez sur .

Vous devriez maintenant être connecté à l'hôte KVM via SSH.

Maintenant, vous pouvez Ssh dans votre machine virtuelle Centos 8 KVM sur la hôte local port 2200 comme suit:

$ ssh shovon @ localhost -p 2200

Ici, bousculade est le nom d'utilisateur de connexion de la machine virtuelle CENTOS 8 KVM.

Une fois que vous avez exécuté la commande, on peut vous poser la question suivante. Taper Oui et presser .

Tapez le mot de passe de l'utilisateur de connexion de votre machine virtuelle Centos 8 KVM et appuyez sur .

Vous devez maintenant être connecté à la machine virtuelle Centos 8 KVM fonctionnant sur votre hôte KVM via SSH, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Vous pouvez également exécuter n'importe quelle commande que vous souhaitez ici.

Méthode 2: Accéder aux machines virtuelles via KVM Public Pridge Network Bridge

Si vous souhaitez un accès complet à votre machine virtuelle Centos 8 KVM, vous pouvez configurer un pont de réseau KVM public. Un pont de réseau public KVM agit comme un interrupteur de réseau. Votre machine virtuelle CentOS 8 KVM obtiendra une adresse IP à partir du même serveur DHCP que votre réseau domestique et, dans le même réseau, sous-réseau que votre réseau domestique. Ainsi, il sera accessible à partir de chaque appareil connecté à votre réseau domestique.

J'ai déjà créé un pont de réseau public KVM public et configuré ma machine virtuelle Centos 8 KVM pour utiliser le pont. J'explique le processus de création du pont de réseau public KVM dans mon article Comment créer une interface de pont en réseau CentOS 8 KVM. Assurez-vous de le vérifier.

Une fois que vous avez créé un pont de réseau public KVM, vous devez configurer votre machine virtuelle Centos 8 pour utiliser le pont. Avant de configurer votre machine virtuelle Centos 8 CentOS8-01, Vérifiez si la machine virtuelle CentOS 8 KVM s'exécute avec la commande suivante:

$ sudo virsh List - Tout

Comme vous pouvez le voir, la machine virtuelle Centos 8 KVM CentOS8-01 est en cours d'exécution. Nous devons l'arrêter avant de le configurer.

Vous pouvez éteindre votre machine virtuelle Centos 8 KVM CentOS8-01 avec la commande suivante:

$ sudo virsh arrêt CentOS8-01

Comme vous pouvez le voir, la machine virtuelle Centos 8 KVM est éteinte.

$ sudo virsh liste - tout

Par défaut, la machine virtuelle CentOS 8 KVM utilise le défaut pont de réseau privé. Je vais le configurer pour utiliser le public Bridge de réseau que j'ai déjà créé.

$ sudo virsh net-list - tout

Pour modifier la configuration de la machine virtuelle CentOS 8 KVM, exécutez la commande suivante:

$ sudo virsh edit Centos8-01

Trouvez le interface Section, comme marqué dans la capture d'écran ci-dessous. Changer la source réseau de défaut pour public.

NOTE: Le fichier de configuration s'ouvre avec l'éditeur de texte VI par défaut. Pour modifier le fichier de configuration dans VI, appuyez sur je aller à INSÉRER mode. Pour enregistrer le fichier de configuration, appuyez sur , tapez : wq!, Et puis appuyez sur .

La configuration de la machine virtuelle doit maintenant être modifiée.

Démarrez la machine virtuelle CentOS 8 KVM avec la commande suivante:

$ sudo virsh start Centos8-01

Maintenant, connectez-vous à votre machine virtuelle Centos 8 KVM à l'aide d'un client VNC. Vérifiez l'adresse IP de la machine virtuelle avec la commande suivante:

$ hostname -i

Comme vous pouvez le voir, l'adresse IP est 192.168.20.133. Cette adresse IP a été fournie par le serveur DHCP de mon réseau domestique. Ceci est une adresse IP du sous-réseau réseau 192.168.20.0/24, qui est le sous-réseau de mon réseau domestique.

Maintenant, vous pouvez vous connecter à la machine virtuelle CentOS 8 KVM à partir de n'importe quel ordinateur connecté à votre réseau domestique, comme suit:

$ ssh shovon @ 192.168.20.133

Ici, bousculade est le nom d'utilisateur de connexion de la machine virtuelle CENTOS 8 KVM.

Une fois que vous avez exécuté la commande, on peut vous poser la question suivante. Taper Oui et presser .

Tapez le mot de passe de l'utilisateur de connexion de votre machine virtuelle Centos 8 KVM et appuyez sur .

Vous devez maintenant être connecté à la machine virtuelle Centos 8 KVM fonctionnant sur votre hôte KVM via SSH, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Vous pouvez également exécuter n'importe quelle commande que vous souhaitez ici.

Conclusion

Cet article vous a montré comment créer une machine virtuelle KVM CentOS 8 et vous connecter à la machine virtuelle via SSH. Lorsque la machine virtuelle CentOS 8 KVM n'est pas accessible depuis le réseau domestique (il utilise un pont de réseau privé), vous devez utiliser SSH Tunneling pour vous connecter à la machine virtuelle KVM à l'aide de SSH. Lorsque vous souhaitez un accès complet à la machine virtuelle CentOS 8 KVM, vous pouvez configurer un pont de réseau public et configurer la machine virtuelle pour utiliser le pont. De cette façon, votre machine virtuelle KVM peut être accessible depuis l'ensemble de votre réseau domestique.