SSH WordPress : commandes utiles et poids des dossiers

Protocole SSH

Quel est l’intérêt de se connecter en SSH ?

Mis à part si vous êtes un geek convaincu ou maso pratiquant, il faut bien l’avouer, se connecter en SSH (Secure SHell ou Session à distance sécurisée) est moins pratique, plus aride et plus dangereux que de le faire avec votre navigateur ftp.

Il faut considérer la puissance et la rapidité de ce mode de communication et d’action pour y trouver soudainement un grand intérêt : dupliquer, supprimer ou modifier les permissions des tous vos dossiers en un claquement de doigt, le tout dans un espace crypté et sécurisé, c’est ce que vous propose ce protocole informatique.

Pour les utilisateurs Mac et Linux, une bonne nouvelle : le langage utilisé est de l’Unix, le même que celui de votre console. Si vous n’êtes pas familier avec ce langage, vous devriez pouvoir vous en sortir avec seulement une douzaine d’instructions pour les opérations les plus courantes.

Je me suis familiarisé avec ce mode de connexion suite à de nombreuses erreurs sur mon hébergement (erreur 500 sur mon site WordPress et erreur de surcharge de la connexion). En passant par ce protocole, j’ai pu ainsi « killer » des process en cours (comme on pourrait le faire dans un gestionnaire de tâche sur Mac ou PC pour terminer une application qui bug).

Puissant, pratique, rapide, je vous souhaite de vous familiariser avec cet excellent moyen de communication.

1

Assurez-vous que votre hébergement propose un tel protocole

Si vous êtes chez 1and1, OVH, Amen, Gandi bonne nouvelle ! Ces hébergements proposent un tel protocole. Si vous êtes chez WPServeur, ça le sera probablement pour bientôt. Demandez dans tous les cas à votre hébergement s’il assure une telle session et comment la paramétrer. La plupart des cas, c’est avec le mot de passe FTP que vous pourrez le faire

2

Pour les PC

Il vous faut installer PuTTy qui est émulateur de terminal qui va pouvoir jouer le rôle d’intermédiaire et de client pour SSH. C’est un programme sûr et Open source que vous pourrez télécharger à cette adresse : http://www.putty.org/. Personnellement, j’ai choisi de l’interfacer avec WinSCP (qui est un autre programme gratuit et sûr (téléchargeable ici : https://winscp.net/eng/index.php). A la première ouverture, WinSCP vous demandera de localiser PuTTY sur votre ordinateur. Une fois paramétré, souvenez vous du raccourci Ctrl+P pour y accéder en un clin d’oeil.

Pour les MAC

Le langage de commande du SSH et ce type de commande à distance sont natifs sur OSX. Vous pouvez suivre ce lien pour apprendre à le paramétrer convenablement.

Quelques commandes SSH parmis les plus communes

help [commande]

Affiche toutes les possibilités et fonctions de la commande choisie

cd

ou (Change Directory), ouvre un dossier
cd – change le répertoire courant pour le répertoire précédent

pwd

(ou print working directory) affiche le chemin dans lequel on est situé

ls

Liste le contenu d’un dossier
ls -rtl affiche les données avec toutes les informations nécessaires

chmod

(ou change mode), modifie les permissions d’un dossier
chmod 777 donne les pleins pouvoirs (à appliquer très temporairement sur WP)

ncdu

Liste les dossiers volumineux d’un hébergement Web

Quelques commandes SSH avancées

top

Affiche tous les processus en cours sous une forme de liste PID

kill [process]

Termine une tâche listée par la commande top. Le tout s’affiche sous une liste de processus
kill -9 [numéro de processus] force la suppression

rm [fichier]

(ou remove) supprime le contenu dossier
rm -rf force la suppression de façon récursive (attention, commande dangereuse)

unzip [fichier.zip]

Dézippe un fichier
Très pratique pour décompresser en une fois un fichier comme toute l’installation WordPress

Quelques exemples

mkdir NouveauDossier
Crée un dossier nommé NouveauDossier

cp -ri DossierAncien wp-content/NouveauDossier/
Copie de façon récursive (-r) le dossier ‘Ancien’ vers le dossier NouveauDossier et demande confirmation si un fichier existe déjà

mv contenu/* ./
This will move all files (and folders) in the includes/ directory to the current working directory.
Cette commande déplacera tous les dossiers et fichiers compris dans le dossier contenu, sur l’emplacement dans le répertoire courant

find . -mtime -2
affiche/recherche les fichiers modifiés dans les deux derniers jours

Résolvez une erreur 503 chez IONOS suite à un transfert

Cela m’arrive souvent.
J’utilise WinSCP pour mes transferts, et lorsqu’ils sont massifs ils ont tendance à engorger IONOS. Trop de tâches parallèles mettent votre hébergement en rideau, et BOUM, erreur 503. Voici la marche à suivre pour résoudre ce soucis (cela suppose auparavant que vous ayez ajouter PuTTY à WinSCP.

top
Affiche tous les processus en cours sous une forme de liste PID : vous devriez disposez alors d’une belle liste de tâche si votre site est en 503

CTRL + C
Permet de sortir de la commande top et de vous redonner le prompt

kill -9 [tâche PID]
sélectionner une à une les tâches PID listées et supprimer en quelques une pour alléger la charge

Vous devriez alors retrouver l’usage de votre site.

Comment peser un dossier en SSH

Un site qui grossit sans qu’on sache pourquoi, c’est presque toujours un dossier oublié qui squatte l’espace disque. Plutôt que de laisser votre navigateur FTP additionner péniblement des milliers de fichiers un par un, deux commandes suffisent.

du -sh dossier/

(du pour disk usage) Affiche le poids total d’un dossier, sous-dossiers compris, dans un format lisible. Le « s » résume (summary), le « h » traduit en Ko, Mo, Go plutôt qu’en octets bruts. C’est votre point de départ.

du -sh */

Donne le poids de chaque sous-dossier du répertoire courant, une ligne chacun. Parfait pour repérer d’un coup d’oeil lequel pèse le plus.

du -sh * | sort -hr

La même chose, triée du plus lourd au plus léger. Le coupable s’affiche tout en haut, la main dans le sac.
du -sh * | sort -hr | head limite l’affichage aux dix plus gros.

du -h –max-depth=1

Affiche le poids du dossier courant et de ses sous-dossiers directs, sans descendre plus profond. Utile pour ne pas se noyer sous une liste à rallonge.

df -h

Celle-ci ne pèse pas un dossier, elle affiche l’espace disque total et ce qu’il vous reste. Pratique pour vérifier avant d’écrire un mail furieux à votre hébergeur.
Sur un WordPress, trois suspects reviennent tout le temps : le dossier des médias (wp-content/uploads), le cache qui enfle en silence, et les sauvegardes qu’un plugin dépose sans jamais faire le ménage derrière lui. Un simple du -sh wp-content/*/ | sort -hr et vous savez où creuser.
Et si votre hébergement propose ncdu (voir plus haut), vous avez la version grand luxe : navigation dans vos dossiers triés par poids, à la flèche du clavier, sans retaper une commande.

Comment se connecter en SSH, concrètement

Avant de taper la moindre commande, il vous faut deux choses : le SSH activé chez votre hébergeur, et un client sur votre ordinateur pour vous y connecter. On commence donc par l’hébergeur, puis on ouvre le terminal.

Côté hébergeur : l’exemple d’Infomaniak

Chez la plupart des hébergeurs mutualisés, le SSH s’active compte FTP par compte FTP. Sur Infomaniak, direction le Manager, puis votre hébergement, puis l’onglet FTP/SSH. Il suffit d’activer le bouton SSH sur le compte concerné.

Notez ensuite trois informations pour la connexion : l’utilisateur (au format xNNNN_nomdusite), le serveur (xNNNN.ftp.infomaniak.com) et le port (22). Le mot de passe demandé sera celui de votre compte FTP. Chaque hébergeur a son propre chemin dans son interface, mais la logique reste la même : on active le SSH, on récupère l’identifiant, le serveur et le port.

Depuis un Mac

Rien à installer, le terminal est natif. Ouvrez l’application Terminal et tapez :

ssh utilisateur@serveur

En reprenant l’exemple Infomaniak, ça donne ssh xNNNN_nomdusite@xNNNN.ftp.infomaniak.com. À la première connexion, le terminal vous demande de valider l’empreinte du serveur : répondez yes.

Si votre hébergeur utilise un port différent de 22, précisez-le avec l’option -p :
ssh -p PORT utilisateur@serveur

Petite précision au passage : se connecter à un serveur distant n’a rien à voir avec « activer le serveur SSH de votre Mac », qui sert à transformer votre Mac en serveur (un tout autre besoin). Ici, votre Mac est le client, il se contente d’aller frapper à la porte du serveur.

Depuis un PC

Bonne nouvelle depuis Windows 10 et 11 : le client SSH est intégré. Ouvrez PowerShell ou l’invite de commandes et utilisez exactement la même syntaxe que sur Mac :

ssh utilisateur@serveur

Si vous préférez une interface graphique, avec le glisser-déposer pour les transferts et un terminal sous la main, PuTTY et WinSCP font toujours le travail.

Astuce pour ceux qui gèrent plusieurs sites

Retaper l’adresse complète à chaque fois devient vite pénible. Sur Mac comme sur PC, vous pouvez enregistrer vos connexions dans le fichier ~/.ssh/config :
Host monclient
HostName xNNNN.ftp.infomaniak.com
User xNNNN_nomdusite
Port 22

Ensuite, un simple ssh monclient suffit. À noter si vous passez par une clé SSH sur Infomaniak : leur infrastructure refuse les clés RSA, il faut générer une clé au format ed25519.


Vous connaissez des commandes que vous utilisez fréquemment ? Ne manquez pas de commenter cet article pour le partager !

2 replies
  1. Olsommer
    Olsommer says:

    Il est vrai que tout bon développeur web se doit de connaître les commandes ssh, c’est quasiment indispensable pour faire certaines tâches… Par exemple j’utilise aussi beaucoup la commande scp qui me permet de copier des répertoires de fichiers d’un serveur à un autre, la ou la récupération via FTP et le transfert via ce même biais mettrais de longues minutes (voir des heures suivant la taille du projet) la commande scp permet de le faire en seulement qq minutes, pareil pour les sauvegardes bdd avec un simple mysqldump… Pourquoi faire compliqué quand on peu faire simple et rapide

    Répondre

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *