<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://marmits.com/w/index.php?action=history&amp;feed=atom&amp;title=Client_SSH</id>
	<title>Client SSH - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://marmits.com/w/index.php?action=history&amp;feed=atom&amp;title=Client_SSH"/>
	<link rel="alternate" type="text/html" href="https://marmits.com/w/index.php?title=Client_SSH&amp;action=history"/>
	<updated>2026-05-25T06:40:53Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://marmits.com/w/index.php?title=Client_SSH&amp;diff=3511&amp;oldid=prev</id>
		<title>Geo le 6 octobre 2025 à 07:00</title>
		<link rel="alternate" type="text/html" href="https://marmits.com/w/index.php?title=Client_SSH&amp;diff=3511&amp;oldid=prev"/>
		<updated>2025-10-06T07:00:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 octobre 2025 à 09:00&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l325&quot;&gt;Ligne 325 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 325 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Catégorie: Linux]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Catégorie: Linux&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] [[Catégorie: Debian&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki2025-mar_:diff:1.41:old-3474:rev-3511:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://marmits.com/w/index.php?title=Client_SSH&amp;diff=3474&amp;oldid=prev</id>
		<title>Geo : Page créée avec « Le fichier &lt;code&gt;~/.ssh/config&lt;/code&gt; dans Debian (et plus généralement sous Linux/Unix) est un &#039;&#039;&#039;fichier de configuration pour le client SSH&#039;&#039;&#039;. Il permet de définir des paramètres personnalisés pour vos connexions SSH, afin d’éviter de retaper des options à chaque commande.  === &#039;&#039;&#039;À quoi sert-il ?&#039;&#039;&#039; ===  * Simplifier les connexions SSH en définissant des alias. * Spécifier des options par hôte (serveur) : utilisateur, port, clé privée, etc. *... »</title>
		<link rel="alternate" type="text/html" href="https://marmits.com/w/index.php?title=Client_SSH&amp;diff=3474&amp;oldid=prev"/>
		<updated>2025-09-26T08:14:32Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « Le fichier &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; dans Debian (et plus généralement sous Linux/Unix) est un &amp;#039;&amp;#039;&amp;#039;fichier de configuration pour le client SSH&amp;#039;&amp;#039;&amp;#039;. Il permet de définir des paramètres personnalisés pour vos connexions SSH, afin d’éviter de retaper des options à chaque commande.  === &amp;#039;&amp;#039;&amp;#039;À quoi sert-il ?&amp;#039;&amp;#039;&amp;#039; ===  * Simplifier les connexions SSH en définissant des alias. * Spécifier des options par hôte (serveur) : utilisateur, port, clé privée, etc. *... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Le fichier &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; dans Debian (et plus généralement sous Linux/Unix) est un &amp;#039;&amp;#039;&amp;#039;fichier de configuration pour le client SSH&amp;#039;&amp;#039;&amp;#039;. Il permet de définir des paramètres personnalisés pour vos connexions SSH, afin d’éviter de retaper des options à chaque commande.&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;À quoi sert-il ?&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* Simplifier les connexions SSH en définissant des alias.&lt;br /&gt;
* Spécifier des options par hôte (serveur) : utilisateur, port, clé privée, etc.&lt;br /&gt;
* Gérer plusieurs clés SSH ou serveurs sans conflit.&lt;br /&gt;
* Activer des fonctionnalités comme le &amp;#039;&amp;#039;&amp;#039;tunnel&amp;#039;&amp;#039;&amp;#039;, le &amp;#039;&amp;#039;&amp;#039;proxy&amp;#039;&amp;#039;&amp;#039;, ou le &amp;#039;&amp;#039;&amp;#039;forwarding&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Exemple typique de contenu :&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;ssh&amp;quot;&amp;gt;Host serveur1&lt;br /&gt;
    HostName 192.168.1.10&lt;br /&gt;
    User john&lt;br /&gt;
    Port 2222&lt;br /&gt;
    IdentityFile ~/.ssh/id_rsa&lt;br /&gt;
&lt;br /&gt;
Host github&lt;br /&gt;
    HostName github.com&lt;br /&gt;
    User git&lt;br /&gt;
    IdentityFile ~/.ssh/id_ed25519&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec ce fichier : - Pour se connecter à &amp;lt;code&amp;gt;serveur1&amp;lt;/code&amp;gt;, il suffit de taper : &amp;lt;code&amp;gt;bash   ssh serveur1&amp;lt;/code&amp;gt; (au lieu de &amp;lt;code&amp;gt;ssh john@192.168.1.10 -p 2222 -i ~/.ssh/id_rsa&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* Pour GitHub, Git utilisera automatiquement la bonne clé.&lt;br /&gt;
&lt;br /&gt;
Voici ce que tu cherches :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== ✅ &amp;#039;&amp;#039;&amp;#039;Options les plus utiles dans &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Chaque option peut être définie globalement ou par &amp;#039;&amp;#039;&amp;#039;bloc &amp;lt;code&amp;gt;Host&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Option&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Host&amp;lt;/code&amp;gt;&lt;br /&gt;
| Alias pour le serveur (ex. &amp;lt;code&amp;gt;serveur1&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;HostName&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nom DNS ou IP du serveur.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;User&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nom d’utilisateur pour la connexion SSH.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Port&amp;lt;/code&amp;gt;&lt;br /&gt;
| Port SSH (par défaut : 22).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;IdentityFile&amp;lt;/code&amp;gt;&lt;br /&gt;
| Chemin vers la clé privée à utiliser.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ProxyJump&amp;lt;/code&amp;gt;&lt;br /&gt;
| Permet de passer par un serveur intermédiaire (jump host).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ForwardAgent&amp;lt;/code&amp;gt;&lt;br /&gt;
| Active le transfert d’agent SSH (&amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;no&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServerAliveInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
| Intervalle (en secondes) pour envoyer un keep-alive et éviter la déconnexion.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServerAliveCountMax&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nombre de keep-alive avant coupure.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;StrictHostKeyChecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt; = refuse les hôtes inconnus, &amp;lt;code&amp;gt;no&amp;lt;/code&amp;gt; = accepte sans confirmation (⚠️ peu sécurisé).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;UserKnownHostsFile&amp;lt;/code&amp;gt;&lt;br /&gt;
| Fichier où sont stockées les empreintes des hôtes (par défaut &amp;lt;code&amp;gt;~/.ssh/known_hosts&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LogLevel&amp;lt;/code&amp;gt;&lt;br /&gt;
| Niveau de verbosité (&amp;lt;code&amp;gt;QUIET&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INFO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VERBOSE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Exemple complet&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;ssh&amp;quot;&amp;gt;Host serveur1&lt;br /&gt;
    HostName 192.168.1.10&lt;br /&gt;
    User john&lt;br /&gt;
    Port 2222&lt;br /&gt;
    IdentityFile ~/.ssh/id_rsa&lt;br /&gt;
    ServerAliveInterval 60&lt;br /&gt;
    ServerAliveCountMax 3&lt;br /&gt;
&lt;br /&gt;
Host github&lt;br /&gt;
    HostName github.com&lt;br /&gt;
    User git&lt;br /&gt;
    IdentityFile ~/.ssh/id_ed25519&lt;br /&gt;
    StrictHostKeyChecking yes&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== ✅ &amp;#039;&amp;#039;&amp;#039;Guide pour sécuriser et tester &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;1. Droits d’accès&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Le fichier doit être lisible uniquement par l’utilisateur :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;chmod 600 ~/.ssh/config&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Le dossier &amp;lt;code&amp;gt;~/.ssh&amp;lt;/code&amp;gt; doit avoir :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;chmod 700 ~/.ssh&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;2. Vérifier la syntaxe&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;SSH ne propose pas de commande dédiée, mais tu peux tester avec :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ssh -G alias&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Cela affiche la configuration complète appliquée pour &amp;lt;code&amp;gt;alias&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;3. Tester la connexion&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Simplement :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ssh -v alias&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;(&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; = verbose, pour déboguer)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;4. Bonnes pratiques&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ne jamais mettre &amp;lt;code&amp;gt;StrictHostKeyChecking no&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; en production.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Utiliser des clés fortes&amp;#039;&amp;#039;&amp;#039; (ed25519 ou RSA ≥ 4096 bits).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Éviter les mots de passe&amp;#039;&amp;#039;&amp;#039; → préférer les clés SSH.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Limiter les permissions&amp;#039;&amp;#039;&amp;#039; sur les clés privées :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;chmod 600 ~/.ssh/id_*&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Voici un &amp;#039;&amp;#039;&amp;#039;modèle &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; durci (sécurité renforcée)&amp;#039;&amp;#039;&amp;#039; avec &amp;#039;&amp;#039;&amp;#039;commentaires ligne par ligne&amp;#039;&amp;#039;&amp;#039;, puis un &amp;#039;&amp;#039;&amp;#039;guide pas à pas pour sécuriser et tester&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Tout est compatible Debian/OpenSSH récents (Bookworm et +).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== 🔐 Modèle &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; – sécurité renforcée + commentaires ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Place ce fichier dans &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; et assure-toi des permissions indiquées plus bas.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;ssh&amp;quot;&amp;gt;# =========================&lt;br /&gt;
# Fichier : ~/.ssh/config&lt;br /&gt;
# Objectif : Sécurité renforcée + lisibilité&lt;br /&gt;
# =========================&lt;br /&gt;
&lt;br /&gt;
# ---- Valeurs par défaut applicables à tous les hôtes ----&lt;br /&gt;
Host *&lt;br /&gt;
    # N&amp;#039;utiliser que l&amp;#039;authentification par clé (pas de mot de passe)&lt;br /&gt;
    PubkeyAuthentication yes&lt;br /&gt;
    PreferredAuthentications publickey&lt;br /&gt;
    PasswordAuthentication no&lt;br /&gt;
    KbdInteractiveAuthentication no&lt;br /&gt;
    GSSAPIAuthentication no             # sauf si tu utilises Kerberos/AD&lt;br /&gt;
&lt;br /&gt;
    # N&amp;#039;offrir que les clés explicitement listées (évite l&amp;#039;énumération de clés)&lt;br /&gt;
    IdentitiesOnly yes&lt;br /&gt;
&lt;br /&gt;
    # Ne JAMAIS transférer l&amp;#039;agent par défaut (réduit le risque de vol d&amp;#039;identité)&lt;br /&gt;
    ForwardAgent no&lt;br /&gt;
    ForwardX11 no&lt;br /&gt;
&lt;br /&gt;
    # Integrity &amp;amp;amp; protection contre les attaques de type MITM&lt;br /&gt;
    StrictHostKeyChecking yes            # refuser les hôtes inconnus&lt;br /&gt;
    HashKnownHosts yes                   # hash les noms dans known_hosts&lt;br /&gt;
    UserKnownHostsFile ~/.ssh/known_hosts&lt;br /&gt;
    UpdateHostKeys ask                   # facilite la rotation des clés hôte, mais te demande&lt;br /&gt;
&lt;br /&gt;
    # Si ton DNS est signé DNSSEC + SSHFP publié, tu peux activer :&lt;br /&gt;
    # VerifyHostKeyDNS yes&lt;br /&gt;
&lt;br /&gt;
    # Robustesse (évite les déconnexions silencieuses)&lt;br /&gt;
    ServerAliveInterval 60&lt;br /&gt;
    ServerAliveCountMax 3&lt;br /&gt;
    TCPKeepAlive yes&lt;br /&gt;
&lt;br /&gt;
    # Multiplexage (plus rapide, avec prudence)&lt;br /&gt;
    ControlMaster auto&lt;br /&gt;
    ControlPersist 10m&lt;br /&gt;
    ControlPath ~/.ssh/ctl/%C           # nécessite le dossier ~/.ssh/ctl (700)&lt;br /&gt;
&lt;br /&gt;
    # Limiter la durée/taille avant re-clé (bon hygiène crypto)&lt;br /&gt;
    RekeyLimit 1G 1h&lt;br /&gt;
&lt;br /&gt;
    # Journalisation standard (utilise -vvv pour debug ponctuel)&lt;br /&gt;
    LogLevel INFO&lt;br /&gt;
&lt;br /&gt;
    # N&amp;#039;ajoute pas automatiquement des clés à l&amp;#039;agent (évite les surprises)&lt;br /&gt;
    AddKeysToAgent ask&lt;br /&gt;
&lt;br /&gt;
    # Nettoyer tout port forwarding hérité d&amp;#039;une session multiplexée&lt;br /&gt;
    ClearAllForwardings yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# ---- Exemple : bastion / jump host ----&lt;br /&gt;
Host bastion&lt;br /&gt;
    HostName bastion.exemple.org&lt;br /&gt;
    User john&lt;br /&gt;
    Port 22&lt;br /&gt;
    IdentityFile ~/.ssh/id_ed25519_bastion&lt;br /&gt;
&lt;br /&gt;
    # Bastion : on peut être plus strict (aucun port forwarding)&lt;br /&gt;
    ForwardAgent no&lt;br /&gt;
    LocalForward&lt;br /&gt;
    RemoteForward&lt;br /&gt;
&lt;br /&gt;
# ---- Exemple : serveurs internes accessibles via le bastion ----&lt;br /&gt;
Host intra-*.exemple.org&lt;br /&gt;
    User admin&lt;br /&gt;
    Port 22&lt;br /&gt;
    IdentityFile ~/.ssh/id_ed25519_intra&lt;br /&gt;
    ProxyJump bastion&lt;br /&gt;
&lt;br /&gt;
    # Optionnel : séparer les empreintes des hôtes internes&lt;br /&gt;
    UserKnownHostsFile ~/.ssh/known_hosts_intra&lt;br /&gt;
&lt;br /&gt;
# ---- Exemple : GitHub ----&lt;br /&gt;
Host github&lt;br /&gt;
    HostName github.com&lt;br /&gt;
    User git&lt;br /&gt;
    IdentityFile ~/.ssh/id_ed25519_github&lt;br /&gt;
    IdentitiesOnly yes&lt;br /&gt;
    # Astuce : pré-semer l’empreinte GitHub dans known_hosts (voir guide)&lt;br /&gt;
    # et tester avec : ssh -T git@github.com&lt;br /&gt;
&lt;br /&gt;
# ---- Exemple : serveur spécifique avec port non standard ----&lt;br /&gt;
Host prod-db&lt;br /&gt;
    HostName 203.0.113.42&lt;br /&gt;
    User postgres&lt;br /&gt;
    Port 2222&lt;br /&gt;
    IdentityFile ~/.ssh/id_ed25519_prod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;💡 &amp;#039;&amp;#039;&amp;#039;Pourquoi on ne force pas les suites cryptographiques (&amp;lt;code&amp;gt;Ciphers&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MACs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;KexAlgorithms&amp;lt;/code&amp;gt;) ?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Les versions modernes d’OpenSSH choisissent automatiquement des algorithmes sûrs et à jour. Figer ces listes peut &amp;#039;&amp;#039;&amp;#039;casser des connexions&amp;#039;&amp;#039;&amp;#039; ou te &amp;#039;&amp;#039;&amp;#039;priver d’améliorations&amp;#039;&amp;#039;&amp;#039; de sécurité à l’avenir. Ne les borne que si tu as une politique formelle ou un audit qui l’exige.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== 🛡️ Guide pas-à-pas : sécuriser &amp;amp;amp; tester ===&lt;br /&gt;
&lt;br /&gt;
==== 0) Préparer l’environnement et les droits ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;mkdir -p ~/.ssh/ctl&lt;br /&gt;
chmod 700 ~/.ssh ~/.ssh/ctl&lt;br /&gt;
touch ~/.ssh/config ~/.ssh/known_hosts&lt;br /&gt;
chmod 600 ~/.ssh/config ~/.ssh/known_hosts&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1) Générer des clés modernes et protégées par passphrase ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Clé générale&lt;br /&gt;
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C &amp;quot;john@$(hostname -f)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Clés dédiées (meilleure hygiène : une clé par usage)&lt;br /&gt;
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519_bastion -C &amp;quot;bastion&amp;quot;&lt;br /&gt;
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519_intra -C &amp;quot;intra&amp;quot;&lt;br /&gt;
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519_github -C &amp;quot;github&amp;quot;&lt;br /&gt;
chmod 600 ~/.ssh/id_ed25519*&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;-a 100&amp;lt;/code&amp;gt; renforce la dérivation de la passphrase (plus résistant au brute-force).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
==== 2) &amp;#039;&amp;#039;&amp;#039;Pinner&amp;#039;&amp;#039;&amp;#039; les hôtes (pré-semer &amp;lt;code&amp;gt;known_hosts&amp;lt;/code&amp;gt;) &amp;#039;&amp;#039;&amp;#039;avant&amp;#039;&amp;#039;&amp;#039; la 1re connexion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Obtiens les empreintes publiques &amp;#039;&amp;#039;&amp;#039;par un canal de confiance&amp;#039;&amp;#039;&amp;#039; (fiche d’exploitation, document interne, site officiel du fournisseur, ou administrateur).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Ajoute-les &amp;#039;&amp;#039;&amp;#039;sans te connecter&amp;#039;&amp;#039;&amp;#039; :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Exemple pour un hôte avec clé ed25519&lt;br /&gt;
ssh-keyscan -t ed25519 bastion.exemple.org | tee -a ~/.ssh/known_hosts&lt;br /&gt;
ssh-keyscan -t ed25519 github.com           | tee -a ~/.ssh/known_hosts&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Vérifie les empreintes localement :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ssh-keygen -lf ~/.ssh/known_hosts | grep -E &amp;#039;bastion\.exemple\.org|github\.com&amp;#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Compare avec la source officielle &amp;#039;&amp;#039;&amp;#039;avant&amp;#039;&amp;#039;&amp;#039; d’autoriser la connexion.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si tu ne peux pas pré-semer, laisse &amp;lt;code&amp;gt;StrictHostKeyChecking yes&amp;lt;/code&amp;gt; et saisis-toi de la première empreinte &amp;#039;&amp;#039;&amp;#039;uniquement après&amp;#039;&amp;#039;&amp;#039; vérification hors bande.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
==== 3) Charger une clé dans l’agent &amp;#039;&amp;#039;&amp;#039;à la demande&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Démarrer l&amp;#039;agent si besoin&lt;br /&gt;
eval &amp;quot;$(ssh-agent -s)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Ajouter la clé avec demande de passphrase&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_bastion&lt;br /&gt;
# Avec confirmation à chaque utilisation (plus sûr) :&lt;br /&gt;
ssh-add -c ~/.ssh/id_ed25519_bastion&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Comme &amp;lt;code&amp;gt;ForwardAgent no&amp;lt;/code&amp;gt;, l’agent n’est &amp;#039;&amp;#039;&amp;#039;pas&amp;#039;&amp;#039;&amp;#039; exposé au serveur distant.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
==== 4) Tester la configuration et diagnostiquer ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Voir la config effective (utile pour déboguer)&lt;br /&gt;
ssh -G bastion | less&lt;br /&gt;
&lt;br /&gt;
# Connexion verbeuse&lt;br /&gt;
ssh -vvv bastion&lt;br /&gt;
&lt;br /&gt;
# Test GitHub sans exécuter de commande (échange SSH uniquement)&lt;br /&gt;
ssh -T git@github.com&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 5) Bonnes pratiques complémentaires ====&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Une clé privée par contexte sensible&amp;#039;&amp;#039;&amp;#039; (prod ≠ dev ≠ perso).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rotation&amp;#039;&amp;#039;&amp;#039; : change périodiquement les clés (&amp;lt;code&amp;gt;ssh-keygen -p&amp;lt;/code&amp;gt; pour changer la passphrase).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sauvegarde chiffrée&amp;#039;&amp;#039;&amp;#039; des clés privées (jamais en clair).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Isolation des empreintes&amp;#039;&amp;#039;&amp;#039; : utilise un &amp;lt;code&amp;gt;UserKnownHostsFile&amp;lt;/code&amp;gt; séparé pour les environnements (ex: &amp;lt;code&amp;gt;known_hosts_intra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;known_hosts_prod&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Multiplexage&amp;#039;&amp;#039;&amp;#039; : purge le dossier &amp;lt;code&amp;gt;~/.ssh/ctl/&amp;lt;/code&amp;gt; si tu soupçonnes une session bloquée.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Éviter &amp;lt;code&amp;gt;StrictHostKeyChecking no&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; : préfère &amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt;. Si tu dois assouplir ponctuellement : &amp;lt;code&amp;gt;ssh -o StrictHostKeyChecking=accept-new host&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;&amp;#039;une seule fois&amp;#039;&amp;#039;&amp;#039; après vérification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== 🧪 Check-list rapide ===&lt;br /&gt;
&lt;br /&gt;
* ☐ &amp;lt;code&amp;gt;~/.ssh&amp;lt;/code&amp;gt; en &amp;#039;&amp;#039;&amp;#039;700&amp;#039;&amp;#039;&amp;#039;, fichiers en &amp;#039;&amp;#039;&amp;#039;600&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ☐ Clés &amp;#039;&amp;#039;&amp;#039;ed25519&amp;#039;&amp;#039;&amp;#039; avec &amp;#039;&amp;#039;&amp;#039;passphrase&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ☐ &amp;lt;code&amp;gt;StrictHostKeyChecking yes&amp;lt;/code&amp;gt;, empreintes &amp;#039;&amp;#039;&amp;#039;pré-semées&amp;#039;&amp;#039;&amp;#039; et vérifiées&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ☐ &amp;lt;code&amp;gt;IdentitiesOnly yes&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ForwardAgent no&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ☐ &amp;lt;code&amp;gt;ProxyJump&amp;lt;/code&amp;gt; pour segmenter l’accès (bastion)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ☐ Test avec &amp;lt;code&amp;gt;ssh -G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssh -vvv&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ssh -T git@github.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
[[Catégorie: Linux]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
</feed>