Jérôme Cutrona

Version statique de l'intranet de Jérôme Cutrona - Rejoindre la version dynamique 🔒

Les exemples et corrections sont potentiellement non fonctionnels.

B.U.T. Informatique - IUT de Reims - Université de Reims

Déploiement d'une machine virtuelle Ubuntu sur OpenNebula

Navigation

Objectifs de la séance

  • Générer un couple de clés publique/privées
  • Déployer une machine virtuelle OpenNebula
  • Ajouter une clé publique autorisée pour se connecter à une machine distante

Génération d'un couple de clés publique/privée

La mécanique classique d'authentification, utilisant un identifiant et un mot de passe, peut être avantageusement remplacée par l'utilisation d'un couple de clés asymétriques. La clé publique est utilisée sur la machine distante pour reconnaitre la signature de la clé privée détenue sur la machine locale et ainsi autoriser ou non la connexion.

Vous pouvez consulter la page Wikipédia concernant la cryptographie asymétrique ainsi que la documentation Ubuntu sur l'authentification SSH par clé.

Travail à réaliser
  1. Si vous n'en avez pas déjà un, générez votre couple de clés sur l'ordinateur client avec :
    ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/Users/cutron01/.ssh/id_rsa):    
    Created directory '/home/Users/cutron01/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/Users/cutron01/.ssh/id_rsa
    Your public key has been saved in /home/Users/cutron01/.ssh/id_rsa.pub
    The key fingerprint is:
    SHA256:M5Hq37j3oL5eMrdRefGhytrqKqzar2jwYfbtbKGrbPE cutron01@2A4F1-31UPC05a
    The key's randomart image is:
    +---[RSA 3072]----+
    |                 |
    |         .       |
    |        +        |
    |   .   * o       |
    |    o = S        |
    |. =. ... o       |
    |.+.= o.o+ o      |
    | *o E.o=.@o.     |
    |+.=+o+=*/*==.    |
    +----[SHA256]-----+
    
    Remarque importante

    Utilisez une passphrase pour protéger votre clé privée.

    Information

    Si vous travaillez en groupe de projet, vous pouvez générer une clé privée pour le groupe et vous la partager, sans pour autant écraser votre propre clé privée. L'option « -f » de la commande ssh-keygen permet de préciser un nom de fichier pour la clé privée et la clé publique portera le même nom suivi de « .pub ». ssh-keygen -t rsa -f ~/.ssh/nom_de_la_clé permet de générer les fichiers « ~/.ssh/nom_de_la_clé » et « ~/.ssh/nom_de_la_clé.pub ».

    Vous pourrez ensuite désigner la clé à utiliser lors de l'invocation de la commande ssh en précisant le fichier d'identité avec l'option « -i ».

  2. Observez les fichiers générés :
    ls ~/.ssh/
    id_rsa id_rsa.pub
  3. Vérifiez que votre clé privée est bien lisible de vous seul :
    la -l ~/.ssh/
    total 8
    -rw------- 1 cutron01 URCA-Faculty 2655 oct.  20 14:09 id_rsa
    -rw-r--r-- 1 cutron01 URCA-Faculty  577 oct.  20 14:09 id_rsa.pub
    Remarque importante

    Votre clé privée ~/.ssh/id_rsa doit rester secrète.

  4. Si votre clé est accessible par d'autres utilisateurs (« rw » pour le groupe ou les autres, « + » à la fin de la chaîne de droits), lancez la commande suivante :
    setfacl -Rb ~/.ssh

Ajouter une clé publique dans la configuration de OpenNebula

Vous vous apprêtez à déployer une machine virtuelle dans le cloud OpenNebula pour laquelle aucun couple identifiant/mot de passe ne permet de se connecter. La solution d'authentification va utiliser une clé publique pour les connexions SSH. Votre clé publique sera automatiquement ajoutée dans le compte root de la machine virtuelle lors de son déploiement.

Travail à réaliser
  1. Rendez-vous sur http://cloud/ et connectez-vous avec votre compte universitaire accéder à l'interface de OpenNebula
  2. Localisez le menu permettant d'accéder à vos préférences accéder aux préférences de OpenNebula
  3. Cliquez sur le menu d'ajout d'une clé SSH publique ajouter une clé SSH publique
  4. Copiez votre clé publique (contenu du fichier ~/.ssh/id_rsa.pub) et collez-la dans le champ dédié de l'interface de OpenNebula ajouter la nouvelle clé SSH publique
  5. Validez votre saisie en appuyant sur « Add SSH Key »

Déployer une machine virtuelle OpenNebula

Votre clé publique étant connu dans votre espace OpenNebula, elle va pouvoir être utilisée lors du processus de déploiement de vos machines virtuelles, en particulier le modèle fourni basé sur Ubuntu.

Travail à réaliser
  1. Localisez le bouton d'ajout d'une machine virtuelle sur le tableau de bord OpenNebula bouton d'ajout d'une machine virtuelle sur le tableau de bord OpenNebula
  2. Observez les modèles disponibles modèles de machines virtuelles disponibles
  3. Trouvez le modèle correspondant à votre choix, « Ubuntu Minimal 22.04 » est donné à titre d'exemple modèle de machine virtuelle pour Ubuntu 20.04
  4. Donnez un nom explicite à votre machine virtuelle et fixez la taille de son disque dur puis validez à l'aide du bouton « Create » nom et taille du disque dur de la machine virtuelle
  5. Votre machine virtuelle est en cours de déploiement (indicateur orange), vous pouvez cliquer sur son nom pour plus de détails machine virtuelle en cours de déploiement
  6. Repérez l'adresse IP de votre machine virtuelle dans les détails de ses statistiques VirtualBox installation Xubuntu

Connexion SSH à la machine virtuelle grâce à la clé

La génération de votre couple de clés et la saisie de votre clé publique dans l'interface de OpenNebula associées au processus de déploiement vous permettent normalement de vous connecter sans mot de passe.

Travail à réaliser
  1. Lancez la tentative de connexion à la machine virtuelle :
    ssh root@ip_de_votre_machine_virtuelle
    The authenticity of host '10.31.5.122 (10.31.5.122)' can't be established.
    ECDSA key fingerprint is SHA256:PyDE3yoSm0JyKF68lbZ60SAakxYQ8+y4uVIaWLSNXeE.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '10.31.5.122' (ECDSA) to the list of known hosts.
    Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-70-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
      System information as of Wed Oct 20 13:29:15 UTC 2021
    
      System load:  0.0               Processes:             104
      Usage of /:   27.8% of 4.56GB   Users logged in:       0
      Memory usage: 22%               IPv4 address for eth0: 10.31.5.122
      Swap usage:   0%
    
     * Super-optimized for small spaces - read how we shrank the memory
       footprint of MicroK8s to make it the smallest full K8s around.
    
       https://ubuntu.com/blog/microk8s-memory-optimisation
    
    135 updates can be installed immediately.
    81 of these updates are security updates.
    To see these additional updates run: apt list --upgradable
    
    
    Last login: Wed Oct 20 13:28:41 2021 from 10.31.4.153
    root@localhost:~#
    
  2. Vérifiez la configuration SSH de l'utilisateur root
    ls -l .ssh/
    total 4
    -rw------- 1 root root 1309 Oct 20 07:27 authorized_keys
    
  3. Vérifiez que la clé publique que vous avez fournie dans l'interface de OpenNebula fait bien partie des clés autorisées
    cat .ssh/authorized_keys 
    ssh-rsa AAAAB3NzaC1yc2EAAYADAQABAAACAQCvVGxxy/z+h/YOGWuac2kT8G7cvq8uIgg5XuGc48rqirKsndv//X6e05FqFUvD8BANG6XWqZDctJOQusXbheHe/9L287O3ky//ibKGVyTOXTgSnZs5lJiHwM54LInMEBJT2FCx5gXyBFgxIDU9Rjehnbkc02yQK67mKDfy2Nf9xCIa8rZgWEbPk2IilPKuYcBKnAzrDQTM31W/E0I8pSygqPvvJXpEm/+iupQKy6eTcbquGWgEyUwl1nZt0gWefWkcv4utIp8mBXHCa6kclOC0o3ct3YAREhzuwQhB2yy6n1jkuoBksSpXCL9XmBnQbSGvZwKu0NoZxBV9k+NRaqe5MRtEEFuePWW1ZmZC1UFSUHlRQKy8lZSqfy7og00wUkpyt6V9EqJSDMyJD1pHzXgX9v1+xZw0EzXvLrmuzydYgzP7eHhV5WbEOkzrifpAyl5xuNYFNviSledXYva8EVEGBaPsz41le+sAauUz5WujtZQSefmNNUv8wrwYd05pi0/S/jN3xHIrTcq+M9mQrYDf8fehY0Tb499meWaM397lLQolP5pidUY/kQyDPHRAibT6OkTNRRD5tUN09+0b9ckDuxt3SQ49yeNhI59sPeDBfm6IaEg0Q9XMof19IF09m+6TyPZcd9AqDbL9gG54Sg7pCVAuv0325ndApFhu2VRcTQ== cutron01@linux

Ajout d'une nouvelle clé SSH publique sur la machine distante

Si vous souhaitez travailler depuis votre domicile en VPN, vous ne posséderez pas la clé privée stockée sur votre PC Linux du département informatique. Vous allez donc générer un nouveau couple de clés et les emporter chez vous.

Travail à réaliser
  1. Ouvrez un shell sur votre machine locale
  2. Générez un nouveau couple de clés dans le répertoire Documents
    ssh-keygen -t rsa -f ~/Documents/id_rsa
    Generating public/private rsa key pair.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/Users/cutron01/Documents/id_rsa
    Your public key has been saved in /home/Users/cutron01/Documents/id_rsa.pub
    The key fingerprint is:
    SHA256:jsXNyf/uh7wwtQjvgfqEU33ezygTNkT5ufVhsx96iWE cutron01@2A4F1-31UPC05a
    The key's randomart image is:
    +---[RSA 3072]----+
    |           .     |
    |          o      |
    |       . . .     |
    |      .=.+*.. +  |
    |     o  S.==.o + |
    |    o .+ +=+.Eo. |
    |     o. o.*+==+.o|
    |      .o .o*+o+o.|
    |      ..  .++o.  |
    +----[SHA256]-----+
    
    Remarque importante

    Utilisez une passphrase pour protéger votre clé privée.

  3. Enregistrez votre nouvelle clé publique sur la machine distante à l'aide de la commande ssh-copy-id
    ssh-copy-id -i ~/Documents/id_rsa.pub root@ip_de_votre_machine_virtuelle
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/Users/cutron01/Documents/id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@10.31.5.122'"
    and check to make sure that only the key(s) you wanted were added.
  4. Connectez-vous sur la machine distante pour vérifier que votre nouvelle clé publique est bien présente
    ssh root@ip_de_votre_machine_virtuelle
  5. Vérifiez les clés autorisées
    cat .ssh/authorized_keys
  6. Copiez les nouvelles clés publique et privée sur une clé USB et supprimez-les de votre compte au département informatique
    Remarque importante

    Votre clé privée id_rsa doit rester secrète, ne la diffusez pas et ne la laissez pas accessible à d'autres.

  7. Une fois sur votre ordinateur personnel, placez les fichiers id_rsa et id_rsa.pub de la clé USB dans le répertoire .ssh de votre compte Linux local
    Remarque importante

    Si votre ordinateur personnel est sur Windows, vous pouvez utiliser PuTTY pour vous connecter à la machine distante, à condition de convertir votre clé privée id_rsa dans un format reconnu par ce logiciel.

  8. Pour accéder au cloud OpenNebula du département informatique depuis chez vous, vous aurez besoin d'utiliser le VPN
    Remarque importante

    Connectez-vous sur https://iut-info.univ-reims.fr/vpn/ pour obtenir les informations de configuration du VPN (bouton « Connexion » en haut à droite)