Cet article a été réactualisé il y a 6 ans jours. Il n'est pas nécessairement obsolète, mais gardez son ancienneté en tête lors de sa lecture.
Pour accéder à son hébergement web et travailler sur ses fichiers et BDD, la solution la plus courante c’est de le faire via le Manager de l’hébergeur, à côté de ça on y ajoute l’utilisation d’un client SFTP. Une autre méthode qui s’avère efficace et plus rapide pour certaines manipulations c’est de travailler en utilisant le protocole Secure Shell (SSH).
Se connecter en SSH sur un hébergement mutualisé
Quels sont les avantages ?
Gérer un site web c’est être amené à faire différentes manipulations comme :
- copier tout ou partie de son installation,
- modifier des droits sur certains de ses fichiers ou dossiers,
- bouger des fichiers,
- sauvegarder une bdd,
- ajouter ou supprimer des extensions,
- mettre à jour son installation etc … c’est loin d’être exhaustif …
Ces manipulations quand elles sont faites via des interfaces prennent du temps (se connecter avec le bon outil, trouver le bon endroit qui correspond au besoin, cliquer sur des boutons, … ) et obtenir un résultat peut être long, très long (récupérer une instance wp en ftp par exemple). Toutes les actions de maintenance sur un site peuvent être réalisées beaucoup plus simplement et rapidement en utilisant le protocole Secure Shell (SSH). Cela permet même de faire plus de choses que ce qui est proposé par les interfaces FTP, Manager hébergeur, PhpMyAdmin, et BO WordPress. On y reviendra.
Se connecter en SSH c’est accéder à une machine UNIX (ici le serveur d’hébergement Infomaniak) à travers une communication chiffrée dans un environnement en ligne de commande (CLI).
Cela suppose de se mettre à l’apprentissage des commandes à passer dans cette interface, mais il existe de nombreux tutoriels pour progressivement se familiariser avec les bases. Le tout consiste juste à se faciliter certaines manipulations inhérentes à la maintenance de sites.
On pourra alors utiliser des commandes du shell Unix, d’autres provenant de bibliothèques, des commandes php (cli), des commandes wp si on a installé wp-cli, etc …
Quelles sont les limitations ?
En étant dans un hébergement mutualisé, tout n’est pas possible, la limitation provenant du fait de partager l’hébergement avec d’autres clients, et donc de n’avoir la main que sur son environnement client et pas directement sur les configurations du serveur. Donc tout ce qui nécessite des droits d’administration (root), des droits supérieurs à celui d’un compte utilisateur sur linux n’est pas possible.
Chez Infomaniak le chemin complet vers son compte utilisateur est de ce type : /home/clients/3f10f2d0f323acdd119dcba235227928, une série de lettres et chiffres vous identifiant en tant que client.
Au niveau du manager Infomaniak, se créer un accès SSH
La première chose à faire, c’est au niveau du manager Infomaniak. Il faut se créer un compte utilisateur FTP avec un accès SSH avec login et mot de passe pour pouvoir avoir accès à tout le contenu de son hébergement.
Aller sur son hébergement et se créer un compte FTP/SSH.
Une fois fait, se mettre sous le coude ces informations :
- Le nom de domaine du serveur (= Host Name ou Serveur Hôte) ou son adresse IP.
- Son nom d’utilisateur SSH (= username) le même que celui du compte FTP qu’on a créé.
- Son mot de mot de passe, idem, le même que le compte FTP.
Le nom de domaine du Serveur hôte est accessible au niveau de l’onglet FTP/SSH
Et son IP peut être lue au niveau du tableau de bord en cliquant sur « plus d’informations »
Se connecter en SSH
Connexion SSH par login / mot de passe
- Sous Windows, pour vous connecter avec Putty, si vous ne l’avez jamais utilisé, vous pouvez consulter ce mémo : « le SSH avec Putty » qui explique comment l’installer, se connecter via login / mot de passe ou à l’aide de clés.
- Sous MacOs ou un Linux c’est plus simple, il y a déjà un client SSH intégré, qu’il suffit d’utiliser dans le terminal en tapant
ssh username@ip
en remplaçant username par le nom d’utilisateur de votre serveur et ip par l’adresse IP de votre serveur. Ensuite le mot de passe est demandé, renseignez le et c’est bon !
Une fois connecté, au niveau de la console, on est placé dans son dossier personnel de l’hébergement mutualisé. (Et oui ! mutualisé = partage de l’hébergement avec d’autres clients) Le répertoire personnel est signalé par ~
. En tapant la commande pwd
pour connaitre le chemin complet de l’endroit où l’on se trouve, vous devrez obtenir quelquechose de cette forme :
/home/clients/monidentifiantdeclient/
Tiens par curiosité, comment voir quelle est la distribution linux de l’hébergement ? Taper lsb_release -a
, sans surprise vous verrez que vous êtes sous une distribution Debian.
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.9 (jessie)
Release: 8.9
Codename: jessie
Connexion SSH par clés
Pour que la connexion soit davantage sécurisée, on peut utiliser le système de clés
Générer ses clés sur sa machine
créer une paire de clés publique / privée.
1/ Générer ses clés avec Putty sous Windows = Voir le tuto Putty pour générer ses clés.
2/ Générer ses clés sous MacOs ou un linux : ssh-keygen -t rsa
- Pendant la génération des clés, vous seront demandés :
- L’endroit où stocker les clés, vous pouvez valider ce qui est proposé par défaut
- Passphrase : idem, validez en appuyant sur entrée (deux fois)
- Les clés seront stockées dans le répertoire .ssh à la racine de votre compte utilisateur sur votre machine
- dans : /home/username/.ssh/id_rsa pour la clé privée
- dans : /home/username/.ssh/id_rsa.pub pour la clé publique
Envoyer sa clé publique sur le serveur distant
Ensuite, il faut envoyer sa clé publique au serveur pour qu’il nous autorise à nous connecter par clé. Sur son espace d’hébergement on va ajouter un dossier contenant un fichier listant des clés autorisées => ~/.ssh/authorized_keys
Envoyer une clé sur le serveur Infomaniak : Voir leur FAQ
Ne trouvant pas leur FAQ assez détaillée quand on est débutant, je la retranscris ici en la complétant. Elle figure aussi dans le mémo d’utilisation de Putty.
Cas 1 : Si on utilise Putty
- se connecter à son hébergement via SSH (login/ mdp)
- si vous n’êtes pas à la racine de votre hébergement, s’y positionner :
cd ~
- créer un répertoire « .ssh »
mkdir .ssh
- modifier les droits du répertoire « .ssh » en chmod 700 (700 = Owner : Read / Write / Execute ou rwx——)
chmod 700 .ssh
- se placer dans le dossier .ssh :
cd .ssh
, on va créer le fichier authorized_keys et y coller sa clé SSH publique sur une seule ligne (important de ne pas ajouter d’espace ou de retour chariot).
L’écriture à passer dans la console sera du type :echo "votre_cle" >> authorized_keys
Si vous avez déjà des clés qui ont été générées par PuttyGen, leur format est spécifique à ce logiciel. Ouvrir PuttyGen, cliquer sur Load, choisir sa clé.
Copier la clé Ctrl + C présente dans la zone « Public key for pasting… ».
Ensuite pour coller la clé dans la console, utilisez la combinaison de touches Shift + Inser plutôt que Ctrl+V. - une fois fait, vérifier les droits des dossier et répertoire :
- dossier .ssh : chmod 700
- fichier authorized_keys : chmod 644
Cas 2 : on est sous MacOs ou un linux
On peut faire un envoi de la clé à partir du terminal de sa machine en lançant cette commande :
cat ~/.ssh/id_rsa.pub | ssh username@ip "cat >> ~/.ssh/authorized_keys"
Ou plus simplement avec celle ci :
ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip
Remplacer username par le nom d’utilisateur de votre serveur et ip par l’adresse IP de votre serveur. Si les dossiers et fichiers n’existent pas ils seront créés.
Que faire maintenant ?
Et bien, on va faire ce qu’on a dit plus haut au niveau des avantages ! Vous allez pouvoir manipuler vos fichiers de façon plus rapide qu’en passant par des interfaces graphiques.
Une chose dont j’ai à peine parlé tout à l’heure, c’est qu’on va aussi pouvoir ajouter un outil super pratique : installer WP-CLI !
Vous pouvez consulter cet autre mémo : « Installer WP-CLI sur son hébergement Infomaniak »