Accès SSH sur un hébergement o2switch

Il est tout à fait possible d'avoir un accès SSH sur un hébergement o2switch. Pour bénéficier de l'accès SSH, il suffit de contacter le support en nous fournissant la ou les adresses IPs que nous devrons placer en liste blanche.

Pour vous débloquer l'accès SSH, nous avons besoin de vous placer en liste blanche. La plupart du temps, cela se fait en nous fournissant votre adresse IP. Vous pouvez retrouver votre adresse IP sur un site comme monip.org par exemple.

Votre adresse IP devrait également s'afficher sur l'image suivante : votre IP

On peut placer plusieurs adresses IP en liste blanche si cela est nécessaire. Il suffit de nous communiquer la liste d'IP, il faut que le nombre d'IP fournis soit raisonnable, nous ne pouvons pas placer une plage entière en liste blanche.

Si vous ne disposez pas d'adresse IP fixe, vous pouvez nous indiquer une adresse de type dyndns pour le passage en liste blanche. Si vous n'avez pas d'adresse dyndns vous pouvez vous inscrire sur un service gratuit comme noip.com.

Un service comme noip.com va vous fournir un domaine (par exemple : qqch.ddns.net) qui a la particularité de se mettre très rapidement à jour au niveau DNS en cas de changement. Ainsi, nous pouvons placer ce domaine en liste blanche, en cas de changement d'adresse IP, la mise à jour de la liste blanche est effective en quelques minutes (3-5 minutes en moyenne).

L'avantage d'un service comme noip.com est qu'il est possible de configurer cela directement sur votre box internet. Ainsi, à chaque changement d'adresse IP, c'est votre box internet qui va automatiquement mettre à jour le domaine dyndns. Vous n'aurez rien à faire. Vous avez aussi la possibilité de mettre à jour ce domaine manuellement (si vous êtes en déplacement par exemple) ou via un logiciel à installer sur votre ordinateur.

Il existe deux méthodes pour s'authentifier :

  • la méthode classique, avec un identifiant/mot de passe. C'est le plus courant.
  • avec un système de clé SSH

Méthode simple

Pour la connexion en SSH, il faut utiliser le même identifiant et mot de passe que cPanel, sur le port 22. L'hôte de connexion peut être l'un des domaines que vous hébergez. Si vous avez une erreur timeout cela signifie que votre adresse IP n'est pas en liste blanche côté serveur ou bien que votre dyndns n'est pas à jour.

Clé SSH

Pour l'authentification avec un système de clé SSH, il faut générer un jeu de clé privée et publique.

La clé privée doit être générée sur votre ordinateur et doit rester secrète. La clé publique est également générée sur votre ordinateur, mais elle doit aller sur votre espace d'hébergement.

Génération des clés sur *nix

Si vous utilisez un système d'exploitation basé sur Mac ou Linux, vous pouvez générer les clés directement avec ssh-keygen qui est (normalement) installé par défaut.

Génération des clés
ssh-keygen -t rsa

Lors de la génération des clés, plusieurs choses sont demandées :

  • Chemin de stockage de la clé, vous pouvez valider en appuyant sur entrer directement
  • Passphrase : même chose, validez en appuyant sur entrer (deux fois)

Les deux clés se situent dans le répertoire .ssh à la racine de votre compte utilisateur (votre ordinateur, pas votre hébergement !) :

  • /home/username/.ssh/id_rsa pour la clé privée
  • /home/username/.ssh/id_rsa.pub pour la clé publique

Génération des clés Windows

Pour Windows, il faut installer un logiciel supplémentaire : PuTTYgen. Vous pouvez en profiter pour installer le client SSH Putty également, si cela n'est pas déjà fait.

Ces deux logiciels sont téléchargeables sur le site officiel du projet. Vous pouvez prendre la version A Windows MSI installer package for everything except PuTTYtel. Prenez bien garde à télécharger cela sur le site officiel, des copies frauduleuses existent et contiennent des infections permettant aux pirates de récupérer les clés ou login/mot de passe utilisés !

Ensuite, il faut lancer PuttyGen pour générer les clés. Veillez à bien générer des clés SSH-2-RSA et cliquez sur le bouton de génération. Le logiciel va vous demander de bouger la souris dans tous les sens pour utiliser ces mouvements aléatoires lors de la génération des clés.

Génération des clés avec PuttyGen

Génération des clés avec PuttyGen

Une fois les clés générées, le logiciel vous proposer de les sauvegarder à l'aide de deux options : save public key et save private key. Faites le en prenant garde à la clé privée qui doit rester secrète. Vous pouvez appeler la clé publique id_rsa.pub et la clé privée id_rsa.

Mise en place des clés

Une fois les clés générées, il faut les mettre en place. Pour cela, il faut envoyer la clé publique (id_rsa.pub) sur le serveur dans le dossier .ssh qui se situe à la racine de votre hébergement.

Pour cela, il faut copier/coller le contenu du fichier id_rsa.pub dans le fichier suivant (à créer si besoin) : ~/.ssh/authorized_keys2 (le dossier .ssh étant à la racine de votre hébergement).

Attention, si vous avez utilisé PuTTyGen pour générer les clés, il faut copier/coller le contenu de la fenêtre visible dans le logiciel dans le fichier ~/.ssh/authorized_keys2. Le fichier généré par le logiciel PuTTyGen est dans un format différent pour le fichier id_rsa.pub.

La clé privée, au bon format, à récupérer dans PuTTyGen

La clé privée, au bon format, à récupérer dans PuTTyGen

Vous pouvez utiliser le gestionnaire de fichier de cPanel pour faire cela, ou bien envoyer le fichier par FTP ou encore, faire cela en ligne de commande directement (linux et mac) :

Exemple d'envoi de clé par SSH
cat ~/.ssh/id_rsa.pub | ssh identifiantcPanel@mondomaine.tld "cat >> ~/.ssh/authorized_keys2"

Les droits du répertoire .ssh et des fichiers contenus dans ce répertoire sont très importants. Des mauvais droits dans ce dossier empêcheront la connexion (par sécurité). Voici les bons droits, à vérifier en cas de problème :

  • Dossier .ssh : chmod 700
  • Fichier .pub (clé publique) : chmod 644
  • Fichier .key ou id_rsa (clé privé, sur votre ordinateur) : chmod 600
  • Authorized_keys2 (sur le serveur) : chmod 644

Si vous êtes sur Mac ou Linux, la connexion SSH devrait à présent être possible automatiquement, sans indiquer de mot de passe. La clé privée est déjà bien installée dans votre client SSH.

Si vous êtes sur Windows, vous utilisez sans doute PuTTy et il faut installer cette clé privée dans PuTTy. Pour cela, lancez le logiciel et ajoutez une nouvelle connexion en remplissant la case Hostname et en mettant un nom dans la case saved sessions. Ensuite, il faut aller dans l'onglet data pour définir l'option auto-login username qui permet de garder en mémoire l'identifiant de connexion. Après, il faut aller dans l'onglet Auth de la catégorie SSH pour définir la clé privée dans private key file for authentification. Enfin, il faut retourner une dernière fois dans l'onglet sessions pour enregistrer tout cela.

Les différentes étapes de la configuration d'une clé privée et de l'authentification automatique dans PuTTy

Les différentes étapes de la configuration d'une clé privée et de l'authentification automatique dans PuTTy

La connexion en SSH est désormais possible, sans mot de passe, via le système de clé !

L'accès SSH permet de gérer votre hébergement. Les usages courants (non exhaustif) de l'accès SSH sur nos hébergements sont :

  • utilisation de la console pour manipuler les fichiers / dossiers
  • génération d'archive zip et tar.gz de certains dossiers (attention, cela va utiliser le maximum de ressource à disposition sur votre hébergement)
  • sauvegarde de base de données avec mysqldump
  • création de script bash ou autre (python)
  • utilisation de la console de certains framework : la console Symfony2 par exemple, ou laravel, ou les autres Frameworks utilisant des concepts similaires
  • utilisation de la console sur des Framework Python, avec les virtualenv (cela est possible à l'aide de l'outil python de cPanel)
  • utilisation de la console de certains CMS, wp-cli pour Wordpress, drush pour drupal (+ bien d'autres CMS)
  • versionnage et déploiement avec git

Ce qui n'est pas possible en revanche :

  • installer de nouveaux paquets sur le système, à l'aide de yum install ou apt-get
  • installer des applicatifs types “serveurs”
  • modifier les réglages du serveur : parefeu, configuration du serveur web
  • de manière générale, tout ce qui demande les droits d'administration (root) ou des droits supérieur à ceux d'un compte utilisateur sur Linux