Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:ssh [2018/10/07 12:53] – [RSA ou ECDSA ?] Refonte partielle en incluant Ed25519 Tycho Brahe | fr:ssh [2025/01/29 21:24] (Version actuelle) – [RSA, ECDSA ou Ed25519 ?] zatalyz | ||
---|---|---|---|
Ligne 41: | Ligne 41: | ||
Si vous n' | Si vous n' | ||
- | Pour la " | + | Pour la " |
Ligne 59: | Ligne 59: | ||
Actuellement (octobre 2018) les seules clés considérées comme fiables sont les clés Ed25519, ECDSA ou RSA d'une taille au moins égale à 2048 bits (4096 ou plus étant mieux mais pas significativement). | Actuellement (octobre 2018) les seules clés considérées comme fiables sont les clés Ed25519, ECDSA ou RSA d'une taille au moins égale à 2048 bits (4096 ou plus étant mieux mais pas significativement). | ||
+ | |||
+ | Sur les serveurs de Khaganat, nous n' | ||
==== Le fichier / | ==== Le fichier / | ||
Ce fichier permet de personnaliser ses accès à ssh de façon extrêmement pratique. | Ce fichier permet de personnaliser ses accès à ssh de façon extrêmement pratique. | ||
Ligne 107: | Ligne 109: | ||
- | Imaginons qu'on ait généré deux clefs RSA comme indiqué au-dessus. Il suffit d' | + | Imaginons qu'on ait généré deux clefs RSA comme indiqué au-dessus. Il suffit d' |
- | * cle1 pour aller sur le serveur 1 | + | * clepriv1 |
- | * cle2 pour aller sur le serveur 2 | + | * clepriv2 |
<code txt config> | <code txt config> | ||
host serveur1 | host serveur1 | ||
HostName serveur1.fr | HostName serveur1.fr | ||
- | IdentityFile ~/.ssh/cle1 | + | IdentityFile ~/.ssh/clepriv1 |
User totor | User totor | ||
| | ||
host serveur2 | host serveur2 | ||
HostName 202.127.12.13 | HostName 202.127.12.13 | ||
- | IdentityFile ~/.ssh/cle2 | + | IdentityFile ~/.ssh/clepriv2 |
User roxxor | User roxxor | ||
</ | </ | ||
- | Ensuite quand on se connectera avec SSH, le système saura que pour aller sur serveur1.fr, | + | Ensuite quand on se connectera avec SSH, le système saura que pour aller sur serveur1.fr, |
===== Se connecter à un serveur avec sa clé ===== | ===== Se connecter à un serveur avec sa clé ===== | ||
Ligne 187: | Ligne 189: | ||
===== Configurer SSH sur ses serveurs ===== | ===== Configurer SSH sur ses serveurs ===== | ||
- | <WRAP center round todo 60%> | ||
- | En brouillon. | ||
- | </ | ||
- | |||
La connexion par mot de passe doit être désactivée partout. La seule façon de se connecter est d' | La connexion par mot de passe doit être désactivée partout. La seule façon de se connecter est d' | ||
Ligne 250: | Ligne 248: | ||
Cela garantit que le serveur vérifie les modes et droits des fichiers de l' | Cela garantit que le serveur vérifie les modes et droits des fichiers de l' | ||
- | UsePrivilegeSeparation sandbox # si dispo sinon | + | |
# UsePrivilegeSeparation yes | # UsePrivilegeSeparation yes | ||
- | La première option, si elle est supportée par votre version de SSH, permet de bien séparer les privilèges et est à privilégier. Si vous avez une version SSH un peu plus ancienne ou ≥7.5((Dans OpenSSH en version 3.2.2 '' | + | <del>La première option, si elle est supportée par votre version de SSH, permet de bien séparer les privilèges et est à privilégier. Si vous avez une version SSH un peu plus ancienne ou ≥7.5((Dans OpenSSH en version 3.2.2 '' |
+ | |||
+ | Cette option est dépréciée depuis la 7.5 car la séparation des privilèges est maintenant par défaut (et depuis un moment). Cette option n'a de sens que sur de très vieux serveurs, qui feraient mieux de ne pas être exposés à internet. | ||
AllowUsers Pseudo1 Moi Toiaussi | AllowUsers Pseudo1 Moi Toiaussi | ||
Ligne 267: | Ligne 267: | ||
Interdit purement et simplement à tous les utilisateurs de se connecter via ssh avec un mot de passe : il faut forcément une clé ssh enregistrée sur le serveur. | Interdit purement et simplement à tous les utilisateurs de se connecter via ssh avec un mot de passe : il faut forcément une clé ssh enregistrée sur le serveur. | ||
- | | + | |
- | Cela va avec le paramètre précédent et le complète. La meilleure explication (en anglais) est [[https:// | + | Cela va avec le paramètre précédent et le complète. La meilleure explication (en anglais) est [[https:// |
PermitEmptyPasswords no | PermitEmptyPasswords no | ||
Ligne 284: | Ligne 284: | ||
UsePAM yes | UsePAM yes | ||
- | En complément de '' | + | En complément de '' |
Ligne 333: | Ligne 333: | ||
PermitRootLogin no | PermitRootLogin no | ||
StrictModes yes | StrictModes yes | ||
- | UsePrivilegeSeparation sandbox # si dispo sinon | ||
- | # UsePrivilegeSeparation yes | ||
PasswordAuthentication no | PasswordAuthentication no | ||
- | ChallengeResponseAuthentication | + | KbdInteractiveAuthentication |
PubkeyAuthentication yes | PubkeyAuthentication yes | ||
UsePAM yes | UsePAM yes | ||
Ligne 363: | Ligne 361: | ||
service ssh restart | service ssh restart | ||
- | | + | |
+ | === Exemple de fichier / | ||
+ | <WRAP center round todo 60%> | ||
+ | Je pose ça tant que j'y pense, ceci est la version à jour en 2025 proposé par Tycho. Attention cependant avant de déployer ça sur les serveurs : | ||
+ | * Seules les clés Ed25519 seront acceptées | ||
+ | * Les protocoles d' | ||
+ | * Faut " | ||
+ | |||
+ | Bref, ne pas utiliser "comme ça", mais ce serait bien de faire évoluer notre fichier d' | ||
+ | |||
+ | Et on met dans ''/ | ||
+ | </ | ||
+ | |||
+ | <code txt / | ||
+ | StrictModes yes | ||
+ | |||
+ | HostKey / | ||
+ | Ciphers chacha20-poly1305@openssh.com, | ||
+ | MACs hmac-sha2-256-etm@openssh.com, | ||
+ | KexAlgorithms sntrup761x25519-sha512, | ||
+ | PubkeyAcceptedAlgorithms ssh-ed25519, | ||
+ | |||
+ | PermitRootLogin no | ||
+ | # AllowUsers zatalyz | ||
+ | # OU | ||
+ | AllowGroups wheel | ||
+ | |||
+ | PasswordAuthentication no | ||
+ | PermitEmptyPasswords no | ||
+ | KbdInteractiveAuthentication no | ||
+ | |||
+ | MaxAuthTries 2 | ||
+ | LoginGraceTime 30 | ||
+ | |||
+ | PrintLastLog yes | ||
+ | |||
+ | PermitUserEnvironment no | ||
+ | AllowTcpForwarding no | ||
+ | X11Forwarding no | ||
+ | </ | ||
+ | ==== Gérer les droits des dossiers et autres bonnes pratiques ==== | ||
+ | Si vous ouvrez un accès SSH à plusieurs personnes sur un serveur, cela ne veux pas dire qu' | ||
+ | |||
+ | <WRAP center round info 90%> | ||
+ | Rappel vite fait pour créer une utilisatrice avec son groupe associé, un home et un shell fonctionnel (remplacer '' | ||
+ | sudo useradd USER -m -U -s /bin/bash | ||
+ | |||
+ | Et penser à lui mettre un mot de passe : | ||
+ | sudo passwd USER | ||
+ | </ | ||
+ | |||
+ | Debian crée par défaut des répertoires " | ||
+ | |||
+ | sudo chmod o-rx /home/* | ||
+ | |||
+ | Ça n' | ||
+ | |||
+ | Si l' | ||
+ | |||
+ | < | ||
+ | sudo mkdir / | ||
+ | sudo chmod ln -s / | ||
+ | sudo chown -R USER: | ||
+ | </ | ||
===== Pour aller plus loin ===== | ===== Pour aller plus loin ===== | ||
* [[http:// | * [[http:// | ||
Ligne 369: | Ligne 431: | ||
* [[https:// | * [[https:// | ||
- | {{tag> | + | {{tag> |