Générateur Configuration SSHD
Zero-Trust Infrastructure Security

Générateur de Configuration de Sécurité Serveur OpenSSH (sshd_config)

Générez des configurations sshd_config Linux hautement sécurisées pour la production : désactivation du root, clés publiques obligatoires, chiffrements AEAD et timeouts stricts.

CVE-2024-6387 RegreSSHion Protection Active
Profils :

Changing to a non-standard port stops 99% of automated port 22 credential bots.

DebianBanner (OS Fingerprinting)
Disabling stops OpenSSH from exposing specific Debian/Ubuntu package versions.
# ==============================================================================
# OpenSSH Server Hardened Configuration (sshd_config)
# Target File: /etc/ssh/sshd_config
# Standards: CIS Linux Benchmark / Mozilla Infosec / NIST SP 800-53
# Generated by ToolsAA: https://toolsaa.com/tools/sshd-config-generator
# ==============================================================================

# ------------------------------------------------------------------------------
# 1. Network & Address Binding
# ------------------------------------------------------------------------------
Port 2222
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

# ------------------------------------------------------------------------------
# 2. Host Key Infrastructure (Ed25519 & RSA)
# ------------------------------------------------------------------------------
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key

# ------------------------------------------------------------------------------
# 3. Logging & Auditing (VERBOSE records key fingerprints for auth tracing)
# ------------------------------------------------------------------------------
LogLevel VERBOSE
SyslogFacility AUTH

# ------------------------------------------------------------------------------
# 4. Authentication & Access Control
# ------------------------------------------------------------------------------
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
KerberosAuthentication no
StrictModes yes
MaxAuthTries 3
MaxSessions 3
LoginGraceTime 30
AllowGroups ssh-users wheel

# ------------------------------------------------------------------------------
# 5. Cryptography Hardening (Ciphers, KEX, MACs & HostKeyAlgorithms)
# ------------------------------------------------------------------------------
KexAlgorithms [email protected],curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
Ciphers [email protected],[email protected],[email protected]
MACs [email protected],[email protected],[email protected]
HostKeyAlgorithms ssh-ed25519,[email protected],rsa-sha2-512,rsa-sha2-256

# ------------------------------------------------------------------------------
# 6. Session Lifecycle & Security Defenses
# ------------------------------------------------------------------------------
ClientAliveInterval 300
ClientAliveCountMax 2
TCPKeepAlive no
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
GatewayPorts no
PermitUserEnvironment no
Compression no
MaxStartups 10:30:60
UsePAM yes

# ------------------------------------------------------------------------------
# 7. Banners & Information Disclosure
# ------------------------------------------------------------------------------
PrintMotd no
PrintLastLog yes
Banner none
DebianBanner no

# ------------------------------------------------------------------------------
# 8. SFTP Subsystem
# ------------------------------------------------------------------------------
Subsystem sftp internal-sftp
Note de sécurité
Score: 100/100(A+)
Politique crypto
Post-Quantum & Curve25519
Protection vulnérabilités
CVE-2024-6387 Mitigated

Standards cryptographiques modernes

Restreint OpenSSH aux échanges de clés post-quantiques et Curve25519, ainsi qu'aux chiffrements AEAD ChaCha20-Poly1305 et AES-GCM, éliminant totalement CBC et 3DES.

Réduction de surface d'attaque zéro-confiance

Impose l'usage exclusif de clés publiques, interdit les mots de passe root, contre les attaques temporelles RegreSSHion (CVE-2024-6387) et tue les sessions inactives.

Fichiers modulaires drop-in & script fiable

Génère des configurations complètes ou des extraits conf.d modulaires avec script bash d'application testant la syntaxe via sshd -t avant tout rechargement.

Référence technique et guide d'architecture

Guide Développeur : Générateur de Configuration Durcie OpenSSH Server (sshd_config) — Guide de référence

Générez des configurations sshd_config Linux hautement sécurisées pour la production : désactivation du root, clés publiques obligatoires, chiffrements AEAD et timeouts stricts.

Paramètres clés et contrôles

PermitRootLoginenum (no | prohibit-password | yes)

Détermine si le superutilisateur root peut se connecter directement en SSH. La valeur 'no' impose l'authentification via un compte standard avec élévation par sudo.

Par défaut : no
PasswordAuthenticationboolean (yes | no)

Définit si l'authentification par mot de passe est acceptée. La valeur 'no' désactive les mots de passe et impose l'authentification par clé publique asymétrique.

Par défaut : no
Ciphersstring list

Spécifie la liste ordonnée des algorithmes de chiffrement symétrique autorisés, privilégiant les modes AEAD (chacha20-poly1305, aes256-gcm) et rejetant le mode CBC vulnérable.

KexAlgorithmsstring list

Définit les algorithmes d'échange de clés (KEX) acceptés, favorisant les courbes elliptiques (Curve25519) et écartant les groupes Diffie-Hellman vulnérables de 1024 bits.

Par défaut : curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
ClientAliveIntervalinteger (secondes)

Définit l'intervalle d'inactivité en secondes au terme duquel le serveur émet un paquet keepalive sur le canal chiffré.

Par défaut : 300
ClientAliveCountMaxinteger

Fixe le nombre maximal de sondes keepalive sans réponse avant que le serveur SSH ne coupe la session inactive ou orpheline.

Par défaut : 2

Conseils de pro et bonnes practices

Exécutez 'sudo sshd -t' pour inspecter

Exécutez 'sudo sshd -t' pour inspecter /etc/ssh/sshd_config avant de redémarrer le démon. Si la commande ne retourne aucun message, la syntaxe est entièrement valide.

Ne fermez jamais votre terminal actuel

Ne fermez jamais votre terminal actuel lors de la réinitialisation de sshd. Ouvrez une seconde fenêtre et effectuez une connexion test ('ssh -i ~/.ssh/id_ed25519 utilisateur@hote') avant de quitter.

Les directives conditionnelles

Les directives conditionnelles déclarées dans 'Match Group' ou 'Match User' s'appliquent à toutes les lignes suivantes jusqu'au prochain bloc Match ou la fin du fichier. Conservez vos règles globales au-dessus de tout bloc Match.

Sur les distributions modernes

Sur les distributions modernes exploitant systemd socket activation ('ssh.socket'), les modifications de port nécessitent un rechargement via 'systemctl restart ssh.socket' pour être prises en compte.

Pièges courants et dépannage

Message 'Permission denied (publickey)' suite à la désactivation des mots de passe.

Assurez-vous que le dossier ~/.ssh a les permissions 700 ('chmod 700 ~/.ssh') et authorized_keys les permissions 600 ('chmod 600 ~/.ssh/authorized_keys'). Si le répertoire personnel de l'utilisateur est accessible en écriture par d'autres utilisateurs, StrictModes bloquera l'accès.

sshd refuse de démarrer avec l'erreur 'Bad configuration option' ou 'Unsupported algorithm'.

Lancez 'sudo /usr/sbin/sshd -t' afin d'isoler l'option obsolète ou la suite cryptographique non supportée. Les versions plus anciennes d'OpenSSH (antérieures à 7.6) peuvent ne pas prendre en charge curve25519-sha256.

Connexion refusée ou délai d'attente dépassé suite au changement de port d'écoute.

Mettez à jour les règles du pare-feu ('ufw allow <port>/tcp' ou 'firewall-cmd --add-port=<port>/tcp --permanent'). Si SELinux est activé, déclarez le port via 'semanage port -a -t ssh_port_t -p tcp <port>'.

Foire aux questions (FAQ)

Quelle est la différence de sécurité entre 'PermitRootLogin no' et 'prohibit-password' ?▼

'no' interdit totalement la connexion directe sous le compte root, forçant les administrateurs à se connecter via un compte standard avant de recourir à sudo. 'prohibit-password' interdit les mots de passe pour root tout en autorisant l'usage de clés SSH, pratique pour les tâches de sauvegarde automatisées.

Pourquoi les chiffrements CBC et les condensats MD5/SHA-1 sont-ils proscrits en durcissement ?▼

Les modes CBC (Cipher Block Chaining) sont vulnérables aux attaques par oracle de remplissage (ex: CVE-2008-5161). De plus, MD5 et SHA-1 présentent des faiblesses démontrées face aux collisions, ce qui enfreint les exigences de conformité PCI-DSS v4.0, SOC 2 et NIST SP 800-53.

Comment afficher les paramètres réels et effectifs exécutés par le serveur OpenSSH ?▼

Exécutez 'sshd -T' sur le serveur. Contrairement à une simple lecture du fichier plat sshd_config, 'sshd -T' affiche les valeurs runtime évaluées en tenant compte de tous les paramètres par défaut actifs dans le démon.

Comment MaxAuthTries protège-t-il contre les attaques par force brute ?▼

En restreignant 'MaxAuthTries' à une valeur basse (comme 3), vous limitez les échecs d'authentification tolérés par tentative de connexion. Couplé à fail2ban ou nftables, cela neutralise les attaques automatisées de devinette de clés dès les premières tentatives.

Outils et utilitaires connexes

Tous les outils →
Ufw Rules Generator Référence pour DéveloppeursSécurité

Utilitaire pour développeurs ufw-rules-generator.

Ouvrir l'outil→
Générateur de Règles de Pare-Feu iptables Linux et Scripts Shell - Guide DéveloppeurSécurité

Générez des règles iptables pour les chaînes INPUT/FORWARD/OUTPUT, l'inspection avec état conntrack, la protection SYN flood, la redirection NAT et l'exportation shell.

Ouvrir l'outil→
Guide Développeur : Générateur et Analyseur d'Enregistrements DNS SPFSécurité

Générez, analysez et validez des enregistrements TXT SPF conformes à la RFC 7208 avec blocs CIDR IPv4/IPv6, MX, A, mécanismes include et politiques SoftFail/HardFail.

Ouvrir l'outil→
Générateur d'Enregistrements DMARC DNS et Validateur de Syntaxe - Guide DéveloppeurSécurité

Générez et validez des enregistrements DNS TXT DMARC conformes à la RFC 7489 avec politiques de traitement (none/quarantine/reject), rapports agrégés rua/ruf et balises d'alignement.

Ouvrir l'outil→
Guide Développeur du Générateur d'Enregistrements DNS CAA (Certification Authority Authorization)Sécurité

Générez des enregistrements DNS CAA conformes à la RFC 8659 pour restreindre l'émission de certificats SSL/TLS aux seules autorités de certification de confiance (Let's Encrypt, DigiCert, Sectigo).

Ouvrir l'outil→
Guide Développeur : Générateur d'Enregistrements DNS DKIM TXT & SélecteursSécurité

Générez des enregistrements DNS DKIM TXT conformes à la RFC 6376 avec sélecteur, formatage de clé publique (v=DKIM1; k=rsa; p=...), découpage à 255 caractères et validation.

Ouvrir l'outil→