KVM

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 qu'à partir de l'hôte KVM. Ainsi, vous ne pouvez pas accéder aux machines virtuelles KVM depuis votre réseau domestique. Pour SSH dans des machines virtuelles s'exécutant sur votre hôte KVM, il existe deux méthodes pour le faire : tunneling SSH et configuration d'un pont réseau KVM public. Cet article vous montre comment vous connecter en SSH à une machine virtuelle KVM CentOS 8 à partir de votre réseau domestique via un tunnel SSH et en utilisant un pont de réseau KVM public.

Conditions préalables

Pour essayer les exemples de cet article, vous devez avoir KVM installé sur votre ordinateur. Si vous n'avez pas installé KVM sur votre ordinateur, vous pouvez lire les articles suivants sur LinuxHint.com pour obtenir de l'aide sur l'installation de KVM sur la distribution Linux de votre choix.

- Installer KVM sur Ubuntu 20.04

- Installer KVM sur CentOS 8

Création d'une machine virtuelle KVM CentOS 8

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 organisés, c'est une bonne idée de stocker l'image ISO dans le /kvm/iso/ annuaire.

Naviguez vers le /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 la page chargée, cliquez sur votre miroir CentOS 8 le plus proche.

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

Je vais télécharger 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 soit le minimal ou la DVD Image d'installation ISO de CentOS 8.

Faites un clic droit (RMB) 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 à l'aide de 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 ISO CentOS téléchargée, créez une machine virtuelle KVM avec la commande suivante :

$ sudo virt-install --name centos8-01 \
--linux de type os \
--os-variante centos8 \
--ram 2048 \
--disque /kvm/disque/centos8-01.img,device=disk,bus=virtio,size=10,format=qcow2 \
--graphiques vnc, écouter=0.0.0.0 \
--pas de console automatique \
--hvm \
--cdrom /kvm/iso/CentOS-8.2.2004-x86_64-boot.iso \
--CD de démarrage, 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 (Random Access Memory) de la VM sera de 2048 Mo ou 2 Go.

Le disque virtuel de la VM sera enregistré dans le /kvm/disk/centos8-01.img déposer. Le disque virtuel est sur 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 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.

Utiliser la virtualisation complète pour la machine virtuelle. Cela améliorera les performances des machines virtuelles.

Utilisez l'image ISO CentOS 8 précédemment téléchargée en tant que CD/DVD ROM virtuel 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 le CD/DVD ROM virtuel, 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 exécutez le virt-install commande, KVM devrait commencer à créer la machine virtuelle. Cela peut prendre un certain temps, selon la configuration de votre 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 y installer CentOS 8. 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 signifie port 5900. De la même manière, le port 1 signifie port 5901, etc.

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 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 recharger

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

$ nom d'hôte -I | tr " " "\n"

Mon réseau domestique utilise le sous-réseau du réseau 192.168.20.0/24. Ainsi, l'adresse IP de mon hôte KVM est 192.168.20.131. Les autres adresses IP sont des ponts réseau privés 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 serveur minimale de CentOS 8 pour la démonstration dans cet article.

CentOS 8 est en cours d'installation sur 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 sur 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 list --all

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

$ virsh démarrer centos8-01

Maintenant, vous pouvez vous connecter au centos8-01 machine virtuelle à partir d'un client VNC, comme avant. Comme vous pouvez le voir, le serveur minimal CentOS 8 fonctionne 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 devrait maintenant être installé. Dans mon cas, il est déjà installé.

Confirmez que le sshd le service est fonctionnement et activée avec la commande suivante :

$ sudo systemctl status sshd

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

$ sudo systemctl démarrer sshd

Si la sshd 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 autoriser 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 autoriser l'accès SSH à 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éder aux machines virtuelles via le tunneling SSH

Par défaut, KVM utilise le pont réseau privé défaut pour la mise en réseau des machines virtuelles. Le sous-réseau d'adresse IP du pont de réseau privé KVM défaut n'est pas accessible depuis 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 comme 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

Confirmez que le sshd le service est fonctionnement et activée 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 démarrer sshd

Si la sshd 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 y autoriser l'accès SSH.

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 Ubuntu 20.04 LTS système d'exploitation, 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 recharger

Votre machine virtuelle CentOS 8 KVM centos8-01 peut être éteint.

$ sudo virsh list --all

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

$ sudo virsh démarrer 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 :

$ nom d'hôte -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 :

$ nom d'hôte -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 créer un tunnel vers la machine virtuelle CentOS 8 KVM via l'hôte KVM, exécutez la commande suivante depuis votre ordinateur :

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

Ici le -L L'option est utilisée pour dire au SSH d'effectuer la redirection de port local.

Celui-ci 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.

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

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

Une fois la commande exécutée, la question suivante peut vous être posée. Taper Oui et appuyez sur .

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 le hôte local Port 2200 comme suit:

$ ssh shovon@localhost -p 2200

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

Une fois la commande exécutée, la question suivante peut vous être posée. Taper Oui et appuyez sur .

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

Vous devriez maintenant être connecté à la machine virtuelle CentOS 8 KVM s'exécutant 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 ici.

Méthode 2 : accéder aux machines virtuelles via le pont de réseau public KVM

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

J'ai déjà créé un pont de réseau public KVM Publique 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 KVM CentOS 8. 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 -all

Comme vous pouvez le voir, la machine virtuelle CentOS 8 KVM centos8-01 est en cours d'exécution. Nous devrions 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 list --all

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 Publique pont réseau que j'ai déjà créé.

$ sudo virsh net-list --all

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

$ sudo virsh modifier centos8-01

Trouvez le interface section, comme indiqué dans la capture d'écran ci-dessous. Changer la la source réseau de défaut à Publique.

REMARQUE: Le fichier de configuration s'ouvre avec l'éditeur de texte Vi par défaut. Pour éditer le fichier de configuration dans Vi, appuyez sur je aller à INSÉRER mode. Pour enregistrer le fichier de configuration, appuyez sur , tapez :wq!, 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 démarrer centos8-01

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

$ nom d'hôte -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. Il s'agit d'une adresse IP du sous-réseau du réseau 192.168.20.0/24, quel est le sous-réseau de mon réseau domestique.

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

$ ssh [email protected]

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

Une fois la commande exécutée, la question suivante peut vous être posée. Taper Oui et appuyez sur .

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

Vous devriez maintenant être connecté à la machine virtuelle CentOS 8 KVM s'exécutant 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 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 (elle utilise un pont de réseau privé), vous devez utiliser le tunneling SSH 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.

Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...
Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...