12 rue de Blénod, 54700 Maidières +33 6 87 42 95 30 Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. Lun-Ven: 8h/12h 14h/17h

SSH expliqué de A à Z : comprendre ce que nous venons de faire

Ce tutoriel a été rédigé à la suite d'une session de diagnostic et de nettoyage de sécurité réalisée sur un hébergement OVH mutualisé. L'objectif est de comprendre, pas à pas, ce que signifient chaque commande et chaque concept SSH utiles dans ce contexte.

1. SSH : qu'est-ce que c'est vraiment ?

L'analogie du téléphone sécurisé

Imaginez que votre serveur est une salle des machines à laquelle vous n'avez pas accès physiquement. FTP, c'est comme glisser des papiers sous la porte — vous pouvez déposer ou récupérer des fichiers, mais vous ne pouvez pas interagir avec ce qui se passe à l'intérieur.

SSH, c'est comme avoir un téléphone sécurisé, chiffré, directement relié à cette salle. Vous pouvez donner des ordres, lancer des programmes, modifier des fichiers, lire des logs — tout ce qu'un technicien ferait s'il était physiquement présent.

Le chiffrement

SSH signifie Secure Shell. Le mot « secure » est important : toute communication entre votre ordinateur et le serveur est chiffrée. Même si quelqu'un intercepte le trafic réseau, il ne voit que du bruit incompréhensible.

Client et serveur

SSH fonctionne en mode client/serveur :

  • Le serveur SSH tourne en permanence sur le serveur OVH, à l'écoute des connexions (port 22 par défaut)
  • Le client SSH est le programme que vous lancez sur votre ordinateur — sous Windows 10/11, il est intégré nativement dans le Terminal

2. La connexion : décryptage de chaque élément

La commande de connexion

ssh 
PartieSignification
sshLance le client SSH
monloginVotre identifiant FTP/SSH OVH
@Séparateur "utilisateur @ machine"
ssh01.clusterXXX.gra.hosting.ovh.netL'adresse du serveur SSH OVH (datacenter Gravelines)

Le numéro de cluster (XXX) est propre à votre hébergement, visible dans l'espace client OVH sous Hébergements → FTP-SSH.

L'erreur fréquente du :22

Le :22 collé au nom d'hôte est la syntaxe utilisée par les navigateurs web et les clients FTP, mais pas par SSH. En SSH, le port se spécifie avec l'option -p :

ssh -p 22 

Comme 22 est le port par défaut, on ne le précise généralement pas du tout.

Le prompt de connexion réussie

 (php/8.2/production/stable64) ~ $
  • monlogin : vous êtes connecté en tant que cet utilisateur
  • (php/8.2/production/stable64) : OVH vous informe de la version PHP active sur cet hébergement
  • ~ : vous êtes dans votre répertoire personnel (/homez.XXX/monlogin)
  • $ : le serveur attend votre prochaine commande

3. Les permissions Unix : comprendre le 0111

Le système de permissions

Chaque fichier ou dossier Unix possède des permissions appliquées à trois catégories : propriétaire, groupe, autres. Chaque catégorie dispose de trois droits :

LettreValeurSignification sur un dossier
r4Lire — lister le contenu
w2Écrire — créer/supprimer des fichiers dedans
x1Exécuter — entrer dans le dossier / le traverser

On additionne les valeurs pour obtenir le chiffre de chaque catégorie : 7 = rwx (tous droits), 5 = r-x (lecture + exécution), 1 = --x (exécution seule).

Pourquoi 0111 bloque tout

0111 = --x--x--x = tout le monde peut traverser le dossier, mais personne ne peut lire son contenu ni écrire dedans. Conséquences pratiques :

  • Votre client FTP ne peut pas lister les fichiers → il ne voit rien
  • Vous ne pouvez pas supprimer le dossier → son contenu est protégé
  • Vous ne pouvez pas modifier les permissions depuis FTP → vous êtes bloqué

Ce type de configuration peut être posé délibérément par un code malveillant pour rendre sa suppression difficile, ou résulter d'une mauvaise manipulation FTP.

La commande chmod

chmod signifie change mode. Elle modifie les permissions :

chmod 755 ~/www/dossier-bloque

755 = propriétaire : 7 (rwx), groupe : 5 (r-x), autres : 5 (r-x) — permission standard pour un dossier web.

Pour corriger tous les dossiers en 0111 d'un coup sous votre racine web :

find ~/www -type d -perm 0111 -exec chmod 755 {} \;

4. L'audit de sécurité : les commandes essentielles

Trouver les dossiers aux noms suspects

find ~/www -type d -name "[0-9a-f]*" 2>/dev/null

Cherche tous les dossiers dont le nom commence par un caractère hexadécimal (0-9 ou a-f). Les dossiers nommés en hash MD5 (32 caractères) peuvent correspondre à du cache légitime d'extensions (sliders, galeries) ou, dans un contexte suspect, à des dossiers déposés par un attaquant. Le contexte et l'emplacement font toute la différence.

Le 2>/dev/null redirige les erreurs vers la corbeille — utile pour éviter d'être noyé sous les messages "Permission non accordée".

Trouver les fichiers cachés

find ~/www -name ".*" -type f 2>/dev/null | grep -v ".htaccess" | grep -v ".well-known"

Sous Unix, un fichier dont le nom commence par un . est caché — invisible dans un listing classique et dans la plupart des clients FTP. On filtre les fichiers légitimes comme .htaccess pour ne garder que les résultats vraiment inhabituels.

Chercher une chaîne suspecte dans les fichiers PHP

grep -r "chaine-suspecte" ~/www --include="*.php" -l

grep -r cherche récursivement dans tous les fichiers PHP. -l affiche uniquement les noms de fichiers correspondants. Utile pour rechercher une URL de serveur externe, un nom de fonction malveillante ou toute signature identifiée.

Analyser les fichiers PHP récemment modifiés

find ~/www -name "*.php" -newer ~/www/configuration.php -mtime -60 2>/dev/null \
  | grep -v "/cache/" | grep -v "/vendor/"
  • -newer ~/www/configuration.php : modifié plus récemment que votre configuration.php (référence stable)
  • -mtime -60 : modifié dans les 60 derniers jours
  • Les grep -v excluent les dossiers de cache et vendors qui génèrent beaucoup de bruit

5. Les types de menaces rencontrées

Le dossier au nom de hash MD5 dans un répertoire inhabituel

Un dossier nommé avec 32 caractères hexadécimaux situé hors des dossiers de cache habituels (ex. dans /api/language/ ou à la racine de /images/) est un signal d'alerte. Les extensions légitimes créent leurs caches dans des chemins documentés. Un dossier en 0111 dans un tel emplacement mérite une investigation immédiate.

Une fois les permissions rétablies avec chmod 755, on peut lister et supprimer son contenu :

ls -la ~/www/chemin/vers/le/dossier/
rm -rf ~/www/chemin/vers/le/dossier/

Le fichier PHP caché de type SEO cloaking

Un fichier caché (nom commençant par .) contenant du PHP dans un dossier core Joomla comme /libraries/ est caractéristique d'un malware de type SEO cloaking. Ce type de script :

  • Détecte si le visiteur est un robot de moteur de recherche (analyse du User-Agent)
  • Si oui, contacte un serveur externe et retourne du contenu frauduleux à la place de vos vraies pages
  • Reste totalement invisible aux visiteurs humains

Résultat : le moteur de recherche indexe du contenu frauduleux à votre place (jeux, paris, contenu adulte), votre référencement se dégrade sans raison apparente visible.

Pour lire le contenu d'un tel fichier avant de le supprimer :

cat ~/www/libraries/.nomfichier

Puis le supprimer :

rm ~/www/libraries/.nomfichier

6. Checklist d'audit SSH en cas de suspicion

ÉtapeCommandeObjectif
Débloquer dossiers verrouillésfind ~/www -type d -perm 0111 -exec chmod 755 {} \;Rétablir l'accès
Dossiers suspects (hash MD5)find ~/www -type d -name "[0-9a-f][0-9a-f][0-9a-f]*"Identifier les droppers
Fichiers cachés hors légitimesfind ~/www -name ".*" -type f | grep -v ".htaccess"Trouver les fichiers masqués
Fichiers PHP récentsfind ~/www -name "*.php" -mtime -30 | grep -v cache | grep -v vendorDétecter les ajouts récents
Recherche de signaturegrep -r "eval\|base64_decode\|system(" ~/www --include="*.php" -lRepérer du code obfusqué
Vérifier les JS injectésgrep -r "document.write\|unescape" ~/www --include="*.js" -lDétecter les injections JS

7. Ce que SSH permet que FTP ne peut pas faire

ActionFTPSSH
Déposer/récupérer des fichiers
Modifier des permissions bloquantes
Chercher du texte dans des milliers de fichiers
Voir les fichiers cachés (.htaccess, .tmp…)⚠️ Parfois✅ Toujours
Supprimer des dossiers imbriqués d'un coup
Lire les logs serveur
Lancer des recherches récursives sur tout le site

SSH est un outil de diagnostic et d'intervention indispensable pour tout administrateur de site sérieux. Il permet de débloquer des situations impossibles à résoudre via FTP, et constitue le premier outil à maîtriser en cas de suspicion de compromission.

Articles liés :

Besoin d'un audit de sécurité de votre site Joomla ? Contactez web54.fr pour une analyse complète de votre hébergement.