Accès SSH sur un hébergement web o2switch

Il est tout à fait possible d'avoir un accès SSH et se connecter en SSH sur un hébergement o2switch.

Pour en profiter, il suffit d'ajouter votre adresse IP en liste blanche avec l'aide de l'outil Autorisation SSH de cPanel.

Ensuite il est possible de se connecter en SSH avec le même identifiant et mot de passe que le compte cPanel. D'autres méthodes d'authentification, comme le système de clé SSH, sont également possible.

Pour vous débloquer l'accès SSH, il faut préalablement mettre en liste blanche votre adresse IP.

Vous pouvez faire cette demande de mise en liste blanche depuis l'outil Autorisation SSH qui se trouve dans cPanel dans la rubrique des outils.

Présentation de l'outil Autorisation SSH permettant d'ajouter des IP ou domaine en liste blanche

Vous pouvez retrouver votre adresse IP sur un site comme mon-ip.io ou mon-ip.co par exemple.

Il est possible de placer plusieurs adresses IP en liste blanche, actuellement 5 exceptions par compte cPanel sont autorisées.

Affichage des adresses qui sont déjà en liste blanche dans l'outil Autorisation SSH

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 trois méthodes pour s'authentifier pour accéder en SSH à l'hébergement :

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

Il est possible d'avoir un shell SSH avec l'outil Terminal dans cPanel.

La connexion est automatique, il suffit d'être connecté sur cPanel.

Cette méthode là peut s'avérer pratique si vous n'avez pas de client SSH et que vous souhaitez vous connecter en SSH sur votre hébergement web à partir d'un navigateur web.

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.

Si vous êtes sous Linux ou MacOS, vous pouvez vous connecter directement depuis le terminal de votre ordinateur, voici un exemple de syntaxe : ssh identifiantcpanel@nomduserveur.o2switch.net

Pour l'authentification avec un système de clé SSH, il faut générer un jeu de clés 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 -b 4096

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_keys (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_keys. 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_keys"

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ée, sur votre ordinateur) : chmod 400
  • Authorized_keys (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és !

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 ressources à 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 setup python app de cPanel). Utilisation de pip possible pour installer des dépendances/outils
  • utilisation de ruby/ruby on rails via un environnement virtuel créé avec l'outil setup ruby app. Installation de dépendances avec gem et bundler possible.
  • utilisation de la console de certains CMS, wp-cli pour Wordpress, drush pour drupal (+ bien d'autres CMS)
  • utilisation des commandes node et npm. Installation de dépendances possibles avec ces outils.
  • c'est possible de travailler dans un environnement virtuel node JS créé avec l'outil setup nodejs app
  • 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 type “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érieurs à ceux d'un compte utilisateur sur Linux
  • Dernière modification: il y a 10 mois
  • de o2switch