Avoir la capacité de SSH dans votre système d'exploitation invité peut s'avérer utile lorsque vous ne souhaitez pas utiliser l'interface graphique de votre machine virtuelle. Démarrez simplement votre VM en mode sans tête et connectez-vous en SSH sans avoir plusieurs fenêtres ouvertes dans votre terminal.
Pour ceux qui sont nouveaux dans l'idée de SSH, nous aurons une brève introduction au fonctionnement de SSH avant de plonger dans la configuration. Nous aurions également besoin de discuter des paramètres liés au réseau de votre machine virtuelle pour vous assurer que vous avez accès à cette machine virtuelle depuis n'importe où dans votre réseau local.
Comment fonctionnent les clés SSH?
Voici un modèle simplifié du fonctionnement de SSH. Vous créez une paire de clés sur votre ordinateur local. Une clé publique et une clé privée. Les messages chiffrés à l'aide de la clé publique peuvent être déchiffrés à l'aide de la clé privée et vice versa. Ces clés sont généralement stockées sur votre ordinateur local à un chemin ~/.ssh/id_rsa
(clé privée) et~/.ssh/id_rsa.pem
(la clé publique).
Vous allez ensuite sur votre serveur distant, connectez-vous à une console en tant qu'utilisateur régulier ou root, ouvrez le fichier ~/.ssh/authorized_keys
de ce serveur. Ici, vous entrez le contenu de votre clé publique telle qu'elle est. Une fois cela fait, vous pouvez ssh en tant qu'utilisateur sur le serveur dont .Le répertoire ssh contient les clés_autorisées, à partir de votre appareil local.
le .pem l'extension signifie que ce fichier est la clé publique que vous pouvez partager avec n'importe qui. le id_rsa partie signifie simplement quel chiffrement de cryptage est utilisé (dans ce cas, il s'agit de RSA). La clé privée peut en outre être protégée par une phrase secrète que vous devrez entrer chaque fois que vous souhaitez vous connecter à un serveur distant à l'aide de cette clé privée.
Si vous avez un Mac, Linux ou tout autre système de type UNIX comme ordinateur local, vous pouvez générer et gérer des clés à l'aide d'un terminal, et vous pouvez également vous connecter en SSH à des serveurs distants à l'aide du même terminal. Pour les utilisateurs de Windows, je suggérerais d'utiliser PuTTY ou Git Bash, ce dernier étant ma préférence personnelle. Les commandes sont à peu près les mêmes une fois que vous avez un client SSH.
Configuration des clés SSH
Assurez-vous d'abord s'il n'y a pas déjà de clés ssh dans votre répertoire personnel. Vérifiez le contenu de votre répertoire personnel .ssh dossier. En cas de doute, sauvegardez son contenu avant d'exécuter la commande suivante. Des programmes comme Filezilla utilisent des clés SSH tout le temps, à l'insu de l'utilisateur, donc cette étape est plutôt cruciale.
Dans votre machine locale, ouvrez le terminal et entrez la commande :
$ ssh-keygenCeci sera suivi des invites suivantes avec des valeurs entre parenthèses indiquant les valeurs par défaut. Suivez les invites et donnez à vos clés une phrase secrète sécurisée.
Vérifiez que les clés sont créées en vérifiant le contenu de votre ~/.ssh dossier.
$ ls -al ~/.sshSi vous voyez des fichiers correspondant aux valeurs par défaut affichées dans le ssh-keygen invite alors tout a bien fonctionné.
Ouvrez maintenant une console sur votre Machine virtuelle. Vérifiez d'abord si votre VM a un serveur SSH en cours d'exécution ou non.
$ service état sshd
S'il n'est pas installé, utilisez votre gestionnaire de paquets pour rechercher et installer le serveur OpenSSH. Une fois cela fait, assurez-vous que le pare-feu de votre VM est ouvert sur le port numéro 22. Par exemple, si vous utilisez Ubuntu comme machine virtuelle, le pare-feu par défaut euh devrait être désactivé ou devrait autoriser les connexions du port 22 comme ceci :
$ sudo ufw status
Si if n'est pas ouvert sur le port 22, utilisez la commande suivante :
$ sudo ufw autoriser sshEnsuite, ouvrez le fichier ~/.ssh/authorized_keys sur votre VM, en utilisant votre éditeur de texte préféré. Vous voudrez peut-être activer le presse-papiers hôte-à-invité ou bidirectionnel pour cette prochaine étape.
A l'intérieur de ce fichier (en bas du fichier, s'il n'est pas vide) collez le contenu de votre Clé publique. La dernière partie où il est dit votre nom et l'hôte local où les clés ont été générées n'est pas aussi importante que le reste de la chaîne.
(Facultatif) Ne pas utiliser de clés SSH
Si vous faites confiance à votre réseau local, vous pouvez utiliser la méthode la moins sécurisée d'utilisation de votre mot de passe UNIX, pour ssh dans votre machine virtuelle. Ouvrir le fichier /etc/ssh/sshd_config sur votre VM et remplacez la ligne :
#PasswordAuthentication nonÀ
Mot de passeAuthentification oui
Une fois cela en place, redémarrez votre serveur SSH.
$ service sshd redémarrerVous pouvez maintenant utiliser le mot de passe normal que vous utilisez pour vous connecter à votre machine virtuelle pour vous y connecter également.
Votre machine virtuelle et votre réseau
Pour que vous puissiez ssh dans votre VM, votre ordinateur local (celui avec la clé privée) et la VM doivent être sur le même réseau. Vous pouvez donc accéder à l'adresse IP de cette VM. Nous allons vous montrer comment ajouter la VM à votre LAN.
Prenons l'exemple d'une configuration de routeur domestique typique. Votre ordinateur, ainsi que d'autres appareils, est connecté au routeur domestique. Ce routeur agit également comme un serveur DHCP, ce qui signifie qu'il attribue à chaque appareil qui y est connecté, une adresse IP privée unique. Votre ordinateur de bureau obtient une adresse IP, votre téléphone et votre ordinateur portable aussi. Seuls les appareils connectés à ce routeur peuvent communiquer entre eux via leurs adresses IP.
Activez le mode réseau ponté dans les paramètres de votre VM et la VM apparaîtra comme étant connectée à votre routeur domestique (ou à un serveur DHCP similaire) avec une IP privée. Si un deuxième appareil est connecté au même réseau (par exemple, au même routeur domestique), il peut être utilisé pour ssh dans la VM.
Ouvrez VirtualBox Manager, sélectionnez votre machine virtuelle cible, ouvrez le Paramètres → Réseau et sélectionnez Bridge Networking au lieu de NAT.
Comme vous pouvez le voir, mon hôte est connecté via Wireless afin que la connexion soit également partagée par la VM, si vous utilisez Ethernet, un nom d'interface différent apparaîtra, ce qui est bien.
Maintenant, ma VM, qui s'appelle ubuntuvm, apparaît sur ma configuration LAN comme suit. Vérifiez les paramètres de votre routeur pour voir si la même chose fonctionne pour vous.
Une fois que vous connaissez l'adresse IP de votre VM, vous pouvez vous y connecter en SSH en exécutant la commande :
$ ssh
Si vous avez mis une phrase secrète pour votre clé privée dans les étapes ci-dessus, vous seriez invité à la ressaisir.
C'est ça! Vous pouvez maintenant démarrer vos machines virtuelles en mode sans tête et simplement y accéder depuis n'importe où dans votre maison. J'espère que vous avez trouvé ce tutoriel intéressant, faites-nous savoir s'il y a un sujet que vous voudriez que nous abordions.