← Retour au blog
tech 9 mai 2026

Sécuriser la première connexion SSH : Stopper les attaques MITM sur tout VPS ou fournisseur cloud

Découvre comment sécuriser ta première connexion SSH en évitant les attaques de type Man-in-the-Middle (MITM) sur tout VPS ou fournisseur cloud. Utilise cloud-init pour injecter des clés SSH temporaires et garantir une connexion sécurisée.

Article inspiré de la source originale
Stop MITM on the first SSH connection, on any VPS or cloud provider ↗ www.joachimschipper.nl

Introduction

Quand tu déploies un nouveau serveur virtuel privé (VPS) ou une instance sur le cloud, la première connexion SSH est critique. Un des risques majeurs est l'attaque Man-in-the-Middle (MITM), où un attaquant peut intercepter et modifier la communication entre toi et ton serveur. Dans cet article, on va explorer une méthode efficace pour sécuriser cette première connexion SSH en utilisant un script simple basé sur cloud-init.

Comprendre les attaques MITM

Les attaques MITM se produisent lorsqu'un attaquant s'interpose entre deux parties communicantes, interceptant et potentiellement modifiant les messages échangés. Dans le contexte d'une connexion SSH, cela signifie que l'attaquant peut se faire passer pour ton serveur, capturer tes informations sensibles ou injecter des commandes malveillantes.

La méthode classique et ses limites

Traditionnellement, lors de la première connexion SSH, on te demande de faire confiance au serveur en ajoutant sa clé dans ton fichier known_hosts. Ceci repose sur le principe de Trust On First Use (TOFU). Cependant, cela laisse une fenêtre de vulnérabilité où un attaquant peut présenter une fausse clé.

La solution cloud-init

La solution proposée utilise cloud-init, un outil largement supporté par les fournisseurs cloud comme AWS, Google Cloud, et Hetzner. L'idée est d'injecter temporairement une clé SSH privée via cloud-init, qui est ensuite utilisée pour authentifier la première connexion SSH.

Étapes de mise en œuvre

  1. Injection de clé temporaire : À l'aide de cloud-init, tu injectes une clé SSH temporaire directement dans l'instance lors de sa création.
  2. Validation de la clé : Utilise cette clé temporaire pour établir une connexion SSH sécurisée et récupérer la clé SSH réelle et permanente du serveur.
  3. Mise à jour de known_hosts : Ajoute la clé permanente à ton fichier known_hosts pour les connexions futures.

Avantages de cette approche

  • Sécurité accrue : La première connexion SSH est sécurisée, éliminant le risque d'interception par un attaquant MITM.
  • Indépendance du fournisseur : Fonctionne avec n'importe quel fournisseur de cloud supportant cloud-init.
  • Protection des données sensibles : Évite de laisser des clés privées sensibles dans le cloud-init userdata, réduisant le risque de fuite.

Limites et considérations

Bien que cette méthode soit robuste, elle nécessite une configuration initiale via cloud-init, ce qui peut être un obstacle pour certains utilisateurs. De plus, il est essentiel de bien gérer et sécuriser les clés temporaires pour éviter tout risque de compromission.

Conclusion

Sécuriser la première connexion SSH est essentiel pour protéger ton infrastructure cloud contre les attaques MITM. En utilisant la méthode décrite, tu peux t'assurer que ta connexion initiale est aussi sécurisée que possible. Pour plus d'informations et pour discuter de la mise en œuvre de cette solution dans ton projet, discutons de ton projet en 15 minutes.

Références

  • [Documentation cloud-init](https://cloud-init.io/)
  • [Hetzner Cloud](https://www.hetzner.com/cloud)
SSH MITM cloud-init VPS cybersecurity
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call