D’un point de vue sécurité, accéder à une machine distante via SSH à l’aide d’un mot de passe n’est pas recommandé.
Que fail2ban soit en place ou non, il est possible de se rendre compte à quel point ladite machine peut être ciblée par des utilisateurs peu scrupuleux :
lastb|head
servicesshstatus
# Si fail2ban est installé et activéfail2ban-clientstatussshd
sqlite3/var/lib/fail2ban/fail2ban.sqlite3"SELECT COUNT(*) from bips WHERE jail = 'sshd'"
Autre point intéressant pour les personnes fainéantes : l’utilisation d’une clé fait gagner du temps, car plus besoin de se souvenir et taper de mot de passe.
Depuis la machine sur laquelle la connexion par clé est souhaitée (remplacer, à la seconde ligne, <id_ed25519.pub> par le contenu du fichier local ~/.ssh/id_ed25519.pub) :
Vérifier maintenant que l’accès par clé fonctionne avant d’aller plus loin : si vous arrivez à vous connecter à la machine distante depuis l’ordinateur local sans entrer votre mot de passe, alors c’est gagné ! 🥳
Dernière étape, désactiver l’accès par mot de passe :
Bien que cet article ne traite pas de la sécurité de SSH, il est fortement recommandé d’installer fail2ban sur la machine distante, une fois la mise en place de la connexion par clé effectuée avec succès.
À titre d’exemple, voici une configuration agressive que j’utilise :
☁️ Serveur (contenu du fichier /etc/fail2ban/jail.local)¶
[DEFAULT]# Banni pendant 24h...bantime=24h# ... Suite à la première tentative.maxretry=1[sshd]mode=aggressiveport=sshlogpath=%(sshd_log)sbackend=%(sshd_backend)sEOF
Pour que ça en jette plus (et/ou pour s’y retrouver plus facilement lorsqu’il y a plusieurs machines distantes), générer un super MOTD grâce à Text to ASCII Art Generator (TAAG). Copier le résultat dans le fichier /etc/motd.
Comment paramétrer SSH pour un accès par clé¶
🚪 Pourquoi ?¶
D’un point de vue sécurité, accéder à une machine distante via SSH à l’aide d’un mot de passe n’est pas recommandé.
Que
fail2ban
soit en place ou non, il est possible de se rendre compte à quel point ladite machine peut être ciblée par des utilisateurs peu scrupuleux :Autre point intéressant pour les personnes fainéantes : l’utilisation d’une clé fait gagner du temps, car plus besoin de se souvenir et taper de mot de passe.
🔑 Générer la clé locale¶
Depuis l’ordinateur d’où l’on souhaite se connecter :
Les fichiers
~/.ssh/id_ed25519
(la clé privée) et~/.ssh/id_ed25519.pub
(la clé publique) seront créés.Note
Si vous avez plusieurs clé SSH, vous pouvez spécifier laquelle utiliser dans le fichier
~/.ssh/config
.Adapter les lignes surlignées, ou, en cas de configuration existante, le nouveau contenu important se situe lignes 5 et 6 :
🔒 Importer la clé sur la machine distante¶
Depuis la machine sur laquelle la connexion par clé est souhaitée (remplacer, à la seconde ligne,
<id_ed25519.pub>
par le contenu du fichier local~/.ssh/id_ed25519.pub
) :Important
Vérifier maintenant que l’accès par clé fonctionne avant d’aller plus loin : si vous arrivez à vous connecter à la machine distante depuis l’ordinateur local sans entrer votre mot de passe, alors c’est gagné ! 🥳
Dernière étape, désactiver l’accès par mot de passe :
Indication
Bien que cet article ne traite pas de la sécurité de SSH, il est fortement recommandé d’installer
fail2ban
sur la machine distante, une fois la mise en place de la connexion par clé effectuée avec succès.À titre d’exemple, voici une configuration agressive que j’utilise :
/etc/fail2ban/jail.local
)¶🍰 Bonus¶
Pour que ça en jette plus (et/ou pour s’y retrouver plus facilement lorsqu’il y a plusieurs machines distantes), générer un super MOTD grâce à Text to ASCII Art Generator (TAAG). Copier le résultat dans le fichier
/etc/motd
.📜 Historique¶
Ajout de l’indication pour recommander l’installation de
fail2ban
.Premier jet.