<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sécurité on Blog de Midiland</title><link>https://midiland.fr/tags/s%C3%A9curit%C3%A9/</link><description>Recent content in Sécurité on Blog de Midiland</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Mon, 12 Oct 2026 16:40:46 +0200</lastBuildDate><atom:link href="https://midiland.fr/tags/s%C3%A9curit%C3%A9/index.xml" rel="self" type="application/rss+xml"/><item><title>La forteresse SSH : Configurer son accès distant</title><link>https://midiland.fr/articles/la-forteresse-ssh-configurer-son-acc%C3%A8s-distant/</link><pubDate>Fri, 26 Dec 2025 11:47:00 +0100</pubDate><guid>https://midiland.fr/articles/la-forteresse-ssh-configurer-son-acc%C3%A8s-distant/</guid><description>&lt;img src="https://midiland.fr/ssh/cover.png" alt="Featured image of post La forteresse SSH : Configurer son accès distant" /&gt;&lt;p&gt;Ça fait plusieurs années que j&amp;rsquo;ai un serveur avec un OpenSSH exposé sur internet, et les premières fois quand je suis allé voir dans les logs, j&amp;rsquo;ai halluciné devant le nombre de tentatives de connexion. Et oui, il y a des bots sur le net qui passent leur temps à faire du brute-force sur les ports SSH. C&amp;rsquo;est pour ça que je te propose un petit tuto où je vais t&amp;rsquo;exposer ma configuration SSH. Je ne suis pas professionnel, mais je pense que c&amp;rsquo;est le minimum. Si tu as d&amp;rsquo;autres tips, n&amp;rsquo;hésite pas à me contacter, je mettrai l&amp;rsquo;article à jour si tes tips me semblent pertinents.&lt;/p&gt;
&lt;h2 id="pourquoi-openssh"&gt;Pourquoi OpenSSH
&lt;/h2&gt;&lt;p&gt;Quand on travaille sur un serveur à distance, on a besoin de l&amp;rsquo;administrer. En général, sur un serveur avec un OS qui mérite de porter ce nom, on peut faire tourner un serveur SSH.&lt;/p&gt;
&lt;p&gt;Grâce au serveur SSH, tu pourras te connecter au terminal du serveur distant : cela permet d&amp;rsquo;administrer le serveur.&lt;/p&gt;
&lt;p&gt;La configuration par défaut du serveur SSH installé par défaut sur le serveur Debian 13 (stable depuis le 15 novembre 2025, avec OpenSSH) peut être durcie.&lt;/p&gt;
&lt;h2 id="les-mises-à-jour"&gt;Les mises à jour
&lt;/h2&gt;&lt;p&gt;Première mesure de sécurité : il faut mettre à jour régulièrement le serveur OpenSSH. C&amp;rsquo;est l&amp;rsquo;un des serveurs les plus utilisés, ce qui en fait une cible privilégiée pour les attaquants.&lt;/p&gt;
&lt;p&gt;Récemment, plusieurs vulnérabilités ont été découvertes :&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2025-26465" target="_blank" rel="noopener"
 &gt;CVE-2025-26465&lt;/a&gt; : Cette vulnérabilité permet à un attaquant d&amp;rsquo;usurper l&amp;rsquo;identité, ce qui peut conduire à des attaques de type homme-du-milieu. La mise à jour vers la version 9.9p2 a permis de résoudre ce problème.&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2025-26466" target="_blank" rel="noopener"
 &gt;CVE-2025-26466&lt;/a&gt; : Une faille dans sshd expose OpenSSH à une attaque par déni de service (DoS). La mise à jour vers la version 9.9p2 a permis de résoudre ce problème.&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2024-6387" target="_blank" rel="noopener"
 &gt;CVE-2024-6387&lt;/a&gt; (RegreSSHion) : Cette vulnérabilité critique, signalée le 1er juillet 2024, affecte les systèmes Linux basés sur glibc et permet l&amp;rsquo;exécution de code à distance (RCE) non authentifiée en tant que root. La mise à jour vers la version 9.8p1 a corrigé cette vulnérabilité.&lt;/p&gt;
&lt;p&gt;Ces exemples illustrent qu&amp;rsquo;il faut maintenir OpenSSH à jour pour se protéger contre des vulnérabilités critiques. Négliger les mises à jour expose ton infrastructure à des risques majeurs. Il est donc recommandé de surveiller régulièrement les annonces de sécurité et d&amp;rsquo;appliquer les correctifs dès leur disponibilité.&lt;/p&gt;
&lt;h2 id="les-prérequis"&gt;Les prérequis
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Un serveur sous Linux (Debian, Ubuntu, Rocky&amp;hellip;) ou OpenBSD.&lt;/li&gt;
&lt;li&gt;Un accès root ou sudo sur ce serveur.&lt;/li&gt;
&lt;li&gt;Un client SSH sur ton PC (Linux, Mac ou Windows avec WSL/PuTTY).&lt;/li&gt;
&lt;/ul&gt;

 &lt;div class="admonition warning"&gt;
 &lt;div class="admonition-header"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"/&gt;&lt;/svg&gt;
 &lt;span&gt;Avertissement&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="admonition-content"&gt;
 &lt;p&gt;Exposer un serveur sur Internet n&amp;rsquo;est jamais anodin. Une mauvaise configuration, c&amp;rsquo;est la porte ouverte aux bots, aux scripts malveillants et aux maux de tête.&lt;/p&gt;
&lt;p&gt;Note bien ceci : Toutes les infos que je vais te transmettre sont basées sur mes configurations personnelles. Je suis un passionné, pas un expert certifié en cybersécurité. Prends ça comme un partage d&amp;rsquo;expérience, pas comme un audit blindé par l&amp;rsquo;ANSSI !&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;h2 id="étape-1--création-dune-clé-ssh"&gt;Étape 1 : Création d&amp;rsquo;une clé SSH
&lt;/h2&gt;&lt;p&gt;Si tu te logues encore avec un mot de passe classique &lt;code&gt;password1234&lt;/code&gt;, arrête tout. On va passer aux clés cryptographiques. C&amp;rsquo;est beaucoup plus robuste.&lt;/p&gt;
&lt;p&gt;Sur ton PC local (pas le serveur), ouvre ton terminal préféré et lance :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-keygen -t ed25519 -C &lt;span class="s2"&gt;&amp;#34;jon@doe.fr&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Note : On utilise l&amp;rsquo;algo ed25519 car il est plus moderne, plus rapide et plus sûr que le vieux RSA.&lt;/p&gt;
&lt;p&gt;Tu peux définir le nom de la clé, dans mon exemple &lt;code&gt;~/.ssh/id_ed25519_vps&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Choix du chemin de la clé lors du ssh-keygen" class="gallery-image" data-flex-basis="3516px" data-flex-grow="1465" height="104" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) calc(75vw - 70px), (max-width: 1279px) calc(50vw - 100px), (max-width: 1535px) calc(60vw - 104px), 818px" src="https://midiland.fr/ssh/b1286149723bbe6e7e64fccd4a945c45.png" srcset="https://midiland.fr/ssh/b1286149723bbe6e7e64fccd4a945c45_hu_e461a882d1de4d63.webp 420w, https://midiland.fr/ssh/b1286149723bbe6e7e64fccd4a945c45_hu_68ddd66ffa6f6093.webp 820w, https://midiland.fr/ssh/b1286149723bbe6e7e64fccd4a945c45_hu_b1f4b7bffc0307e9.webp 1240w" width="1524"&gt;
&lt;/p&gt;
&lt;p&gt;Tu peux ajouter une passphrase, elle te sera demandée à chaque utilisation&lt;/p&gt;
&lt;p&gt;&lt;img alt="Saisie de la passphrase protégeant la clé privée" class="gallery-image" data-flex-basis="2899px" data-flex-grow="1207" height="126" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) calc(75vw - 70px), (max-width: 1279px) calc(50vw - 100px), (max-width: 1535px) calc(60vw - 104px), 818px" src="https://midiland.fr/ssh/adec41edbb6c7205139212180be83ad1.png" srcset="https://midiland.fr/ssh/adec41edbb6c7205139212180be83ad1_hu_26a24009fd0ba208.webp 420w, https://midiland.fr/ssh/adec41edbb6c7205139212180be83ad1_hu_571b0d4d44b0c726.webp 820w, https://midiland.fr/ssh/adec41edbb6c7205139212180be83ad1_hu_66c4571c329702d8.webp 1240w" width="1522"&gt;
&lt;/p&gt;

 &lt;div class="admonition info"&gt;
 &lt;div class="admonition-header"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/&gt;&lt;/svg&gt;
 &lt;span&gt;Info&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="admonition-content"&gt;
 &lt;p&gt;Mets une passphrase ! Si on te vole ton PC portable non verrouillé, ta clé privée sera compromise. Avec une passphrase, le voleur ne pourra rien en faire.&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;p&gt;La clé se trouve dans ton dossier &lt;code&gt;home&lt;/code&gt;, dans le sous-dossier &lt;code&gt;.ssh&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Une fois générée, ta clé est dans le dossier &lt;code&gt;.ssh&lt;/code&gt; de ton dossier personnel. Il faut maintenant envoyer la partie « publique » sur ton serveur :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-copy-id -i ~/.ssh/id_ed25519_vps.pub user@ip-du-serveur
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="étape-2--configuration-dopenssh"&gt;Étape 2 : Configuration d&amp;rsquo;OpenSSH
&lt;/h2&gt;&lt;p&gt;Maintenant que ta clé est en place, on passe aux choses sérieuses sur le serveur. Le fichier de config se trouve dans &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tu peux l&amp;rsquo;ouvrir avec ton éditeur favori : &lt;code&gt;vim&lt;/code&gt; pour les Jedi, &lt;code&gt;nano&lt;/code&gt; pour les Padawans.&lt;/p&gt;
&lt;p&gt;Voici les paramètres à changer ou ajouter :&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Paramètre&lt;/th&gt;
					&lt;th&gt;Valeur recommandée&lt;/th&gt;
					&lt;th&gt;Explication&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;PermitRootLogin&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;no&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Indispensable. On ne se connecte jamais directement en root. Tu te connectes avec ton user, puis tu fais &lt;code&gt;sudo&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;PasswordAuthentication&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;no&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;On désactive les mots de passe. Clés SSH obligatoires !&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Port&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;2222&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Changer le port 22 par défaut réduit considérablement le bruit dans les logs (les bots tapent surtout le 22). Ce n&amp;rsquo;est pas de la « vraie » sécurité, mais ça soulage.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;PubkeyAuthentication&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;yes&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Assure que l&amp;rsquo;authentification par clé est active.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ChallengeResponseAuthentication&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;no&lt;/code&gt; (optionnel selon distro)&lt;/td&gt;
					&lt;td&gt;Désactive PAM pour limiter l&amp;rsquo;auth via password.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;AllowAgentForwarding&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;no&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Bloque le relais d&amp;rsquo;agent (sauf si tu sais exactement pourquoi tu en as besoin).&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;PermitTunnel&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;no&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Désactive la possibilité de créer des tunnels réseau via SSH pour limiter les abus.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;X11Forwarding&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;no&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Pas de transfert d&amp;rsquo;interface graphique (inutile sur un serveur et vecteur d&amp;rsquo;attaque).&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;MaxAuthTries&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Au bout de 3 essais ratés, on coupe. Pas de temps à perdre.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ClientAliveCountMax&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Ferme la connexion après 3 requêtes sans réponse.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ClientAliveInterval&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;60&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Si la connexion reste sans réponse pendant 60 secondes, elle est coupée.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# --- Sécurisation OpenSSH by Midiland ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Port personnalisé&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Port &lt;span class="m"&gt;2222&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Authentification&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PermitRootLogin no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PasswordAuthentication no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PubkeyAuthentication yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ChallengeResponseAuthentication no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Restrictions de forwarding&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AllowAgentForwarding no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PermitTunnel no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;X11Forwarding no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Tentatives &amp;amp; timeout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MaxAuthTries &lt;span class="m"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ClientAliveInterval &lt;span class="m"&gt;60&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ClientAliveCountMax &lt;span class="m"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="vérification-et-application"&gt;Vérification et application
&lt;/h3&gt;&lt;p&gt;Avant de relancer le service, on vérifie toujours (au risque de tout casser) que la syntaxe est bonne :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sshd -t
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la commande ne renvoie rien, c&amp;rsquo;est gagné. Si elle râle, corrige les erreurs indiquées.&lt;/p&gt;
&lt;p&gt;Ensuite, on redémarre le service :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl restart sshd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;div class="admonition caution"&gt;
 &lt;div class="admonition-header"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"/&gt;&lt;/svg&gt;
 &lt;span&gt;Attention&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="admonition-content"&gt;
 &lt;p&gt;Ne ferme &lt;strong&gt;JAMAIS&lt;/strong&gt; ta session SSH actuelle après avoir redémarré le service SSH.
Ouvre un nouveau terminal et essaie de te connecter avec ta nouvelle config (nouveau port, clé SSH).&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;p&gt;Commande de test :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh -i ~/.ssh/id_ed25519 -p &lt;span class="m"&gt;2222&lt;/span&gt; user@ip-du-serveur
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si ça marche, bravo ! Si ça échoue, tu as toujours ta première fenêtre ouverte pour corriger le tir sans t&amp;rsquo;être enfermé dehors.&lt;/p&gt;
&lt;h2 id="configuration-des-ciphers-et-algorithmes-pour-openssh"&gt;Configuration des Ciphers et algorithmes pour OpenSSH
&lt;/h2&gt;&lt;p&gt;Pour ceux qui veulent la ceinture et les bretelles, on peut forcer OpenSSH à n&amp;rsquo;utiliser que des algorithmes de chiffrement ultra-robustes et récents.&lt;/p&gt;
&lt;p&gt;Attention : Cette config peut bloquer la connexion depuis de très vieux clients SSH.&lt;/p&gt;
&lt;p&gt;Dans le fichier &lt;code&gt;/etc/ssh/sshd_config.d/ciphers.conf&lt;/code&gt;, il faut le créer s&amp;rsquo;il n&amp;rsquo;existe pas.&lt;/p&gt;
&lt;p&gt;Ce bloc restreint les algorithmes autorisés aux plus modernes et sûrs, selon les recommandations de &lt;a class="link" href="https://www.ssh-audit.com/hardening_guides.html" target="_blank" rel="noopener"
 &gt;ssh-audit.com&lt;/a&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;KexAlgorithms&lt;/code&gt;&lt;/strong&gt; : échanges de clés (Key Exchange) — on garde les courbes elliptiques récentes (Curve25519, sntrup761) et les groupes Diffie-Hellman solides.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Ciphers&lt;/code&gt;&lt;/strong&gt; : algorithmes de chiffrement symétrique — ChaCha20-Poly1305 et AES en mode GCM/CTR uniquement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;MACs&lt;/code&gt;&lt;/strong&gt; : codes d&amp;rsquo;authentification de message — HMAC-SHA2 et UMAC en mode « encrypt-then-MAC » (&lt;code&gt;-etm&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;HostKeyAlgorithms&lt;/code&gt;&lt;/strong&gt; et &lt;strong&gt;&lt;code&gt;PubkeyAcceptedAlgorithms&lt;/code&gt;&lt;/strong&gt; : types de clés de serveur et de client acceptés — Ed25519 en priorité, RSA 3072 bits minimum.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Restrict key exchange, cipher, and MAC algorithms, as per sshaudit.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# hardening guide.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;KexAlgorithms sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,gss-curve25519-sha256-,diffie-hellman-group16-sha512,gss-group16-sha512-,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-gcm@openssh.com,aes128-ctr
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;HostKeyAlgorithms sk-ssh-ed25519-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;RequiredRSASize &lt;span class="m"&gt;3072&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CASignatureAlgorithms sk-ssh-ed25519@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GSSAPIKexAlgorithms gss-curve25519-sha256-,gss-group16-sha512-
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;HostbasedAcceptedAlgorithms sk-ssh-ed25519-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,ssh-ed25519,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-256
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PubkeyAcceptedAlgorithms sk-ssh-ed25519-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,ssh-ed25519,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-256
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un petit redémarrage :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl restart sshd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tu peux même aller frimer en testant ton serveur sur &lt;a class="link" href="https://www.ssh-audit.com/" target="_blank" rel="noopener"
 &gt;ssh-audit.com&lt;/a&gt; pour voir ta note.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Résultat de l’audit ssh-audit.com après durcissement de la configuration" class="gallery-image" data-flex-basis="923px" data-flex-grow="384" height="499" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) calc(75vw - 70px), (max-width: 1279px) calc(50vw - 100px), (max-width: 1535px) calc(60vw - 104px), 818px" src="https://midiland.fr/ssh/dad531e8a3232bc46dccc3fe3ca62311.png" srcset="https://midiland.fr/ssh/dad531e8a3232bc46dccc3fe3ca62311_hu_cc7294702e06338c.webp 420w, https://midiland.fr/ssh/dad531e8a3232bc46dccc3fe3ca62311_hu_d9aba65c193ab0bf.webp 820w, https://midiland.fr/ssh/dad531e8a3232bc46dccc3fe3ca62311_hu_271246ce53a1ef17.webp 1240w, https://midiland.fr/ssh/dad531e8a3232bc46dccc3fe3ca62311_hu_dccfc2176a87bacf.webp 1640w" width="1920"&gt;
&lt;/p&gt;
&lt;h2 id="dépannage-oups-je-suis-bloqué-"&gt;Dépannage (Oups, je suis bloqué !)
&lt;/h2&gt;
 &lt;div class="admonition question"&gt;
 &lt;div class="admonition-header"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/&gt;&lt;/svg&gt;
 &lt;span&gt;Tu as redémarré le service et tu ne peux plus te connecter ?&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="admonition-content"&gt;
 &lt;p&gt;Pas de panique (enfin, un peu quand même).&lt;/p&gt;
&lt;p&gt;→ &lt;strong&gt;Vérifie ton pare-feu&lt;/strong&gt; : tu as oublié d&amp;rsquo;ouvrir le nouveau port (2222) ! Chez ton hébergeur, autorise le port &lt;code&gt;2222/tcp&lt;/code&gt;.&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;h2 id="conclusion"&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Et voilà ! Tu as maintenant un serveur OpenSSH aux petits oignons. La surface d&amp;rsquo;attaque est réduite drastiquement : plus de mot de passe, plus de root direct, port changé et crypto renforcée. Les bots vont se casser les dents dessus.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est une première étape essentielle. Pour aller plus loin, je te conseille d&amp;rsquo;installer Fail2Ban qui se chargera de bannir automatiquement les IPs des petits malins qui insisteraient un peu trop, on le fera sûrement dans un autre tuto.&lt;/p&gt;
&lt;p&gt;Si tu as d&amp;rsquo;autres recommandations, envoie-moi un &lt;a class="link" href="mailto:contact@midiland.fr" &gt;mail&lt;/a&gt; ou un pouet sur &lt;a class="link" href="https://framapiaf.org/@midiland" target="_blank" rel="noopener"
 &gt;Mastodon&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>