l3d.sshd
Serveur OpenSSH
==============
Rôle Ansible pour configurer le serveur OpenSSH SSHD
.
L'objectif principal de ce rôle est de gérer le fichier sshd.conf
et d'autres éléments comme le déploiement des clés d'hôte SSH définies au chemin configuré.
Conseil Pro
Utilisez la cryptographie à courbe elliptique pour vos clés SSH :
ssh-keygen -t ed25519
Les valeurs par défaut de ce rôle ne permettront que les clés ed25519, mais vous pouvez bien sûr les modifier si vous le souhaitez.
Utilisation prévue
Ce rôle est conçu pour gérer les hôtes linux avec les rôles suivants. Il se concentre principalement sur une bonne configuration de sshd et peut définir quels utilisateurs sont autorisés à se connecter via SSH et quels types de clés SSH sont autorisés.
D'autres rôles distribuent des clés publiques SSH, créent des utilisateurs, configurent les autorisations sudo, déploient des fichiers de configuration, ou installent un certain nombre de paquets utiles.
Une liste de rôles suggérés pour gérer votre hôte linux :
- do1jlr.base installer des paquets utiles
- do1jlr.users créer des utilisateurs et gérer les sudoers
- do1jlr.auth déployer des clés publiques SSH
- do1jlr.sshd (celui-ci)
- do1jlr.dotfiles déployer des fichiers de configuration
Bon à savoir :
Les rôles listés utilisent les mêmes variables pour créer des comptes, des administrateurs, etc. Mais les rôles doivent être exécutés dans le bon ordre pour fonctionner correctement.
Par exemple, vous ne pouvez pas déployer une clé publique SSH pour un utilisateur qui n'est pas créé.
Quelques variables expliquées
Souvenez-vous : Consultez defaults/main.yml
pour toutes les variables possibles.
Port SSH
Le port OpenSSH est défini par la variablesshd__port: 22
. Changez-le si vous le souhaitez.Utilisateurs et groupes autorisés
Les utilisateurs par défaut qui sont autorisés à se connecter proviennent de la listeusers: {}
.
La même variableusers: {}
est utilisée dans les autres rôles SSH recommandés.
Un exemple pour autoriser la connexion des utilisateurs et groupes appelésl3d
etottojo
:
users:
l3d:
- l3d
ottojo:
- ottojo@uni
- ottojo@home
Connexion SSH par mot de passe
L'authentification par mot de passe SSH est désactivée parsshd__password_authentication: false
. Cela ne vous permettra pas d'utiliser votre mot de passe pour vous connecter via SSH.Gérer les types de clés SSH
Par défaut, ce rôle configure quels types de clés SSH sont autorisés à se connecter. Si vous ne souhaitez pas définir cela, changez la variablesshd__manage_key_types: true
.Définir les types de clés SSH autorisés
Les types de clés SSH autorisés sont définis par cette liste. Certains d'entre eux sont commentés.
Veuillez noter qu'en vertu des valeurs par défaut, seules les clésed25519
sont autorisées. Tenez-en compte si vous utilisez une clé rsa.
sshd__key_types:
- 'ed25519'
# - 'rsa'
# - 'ecdsa'
# - 'dsa' # (ne pas utiliser !)
Paramètres avancés des algorithmes SSH
Vous pouvez définir ici les algorithmes de clé et de Kex utilisés. Pour les valeurs par défaut et quelques exemples pour les variablessshd__key_algorithmus
etsshd__kex_algorithmus
, consultezdefaults/main.yml
.
Vous pouvez les désactiver en définissantsshd__manage_key_algorithmus
etsshd__manage_kex_algorithmus
surfalse
.Forcer les nouvelles fonctionnalités SSH
Si vous savez que vous utilisez une version SSH>8
, vous pouvez éventuellement le définir avectrue/false
avec la variablesshd__version_is_above_eight
.
Fichiers
La tâche principale de ce rôle est de configurer le fichier sshd.conf
.
Références
Tests
Ce rôle est testé avec quelques tests de linting. Malheureusement, je ne sais pas comment exécuter ce rôle dans un conteneur Docker car systemd est impliqué... Si vous avez des idées pour améliorer les tests, veuillez m'envoyer un message, ouvrir un problème ou une Pull Request.
Si vous voulez en savoir plus sur nos tests, veuillez consulter le marketplace de GitHub.
statut des tests | Marché GitHub |
---|---|
publier le rôle ansible sur galaxy | |
action yamllint-github | |
action ansible-lint |
Manage your SSH Server - and deploy a good sshd configuration
ansible-galaxy install l3d.sshd