l3d.sshd
OpenSSH Server
====================
Ansible-Rolle zur Konfiguration des OpenSSH Servers SSHD
.
Hauptziel dieser Rolle ist die Verwaltung der Datei sshd.conf und das Bereitstellen der definierten SSH-Host-Schlüssel am konfigurierten Pfad.
Tipp
Verwenden Sie elliptische Kurven-Kryptografie für Ihre SSH-Schlüssel:
ssh-keygen -t ed25519
Die Standardwerte dieser Rolle erlauben nur ed25519-Schlüssel. Sie können dies jedoch ändern, wenn Sie möchten.
Geplanter Einsatz
Diese Rolle ist dafür gedacht, Linux-Hosts mit den folgenden Rollen zu verwalten. Diese Rolle konzentriert sich grundsätzlich nur auf eine gute Konfiguration von sshd und kann definieren, welche Benutzer sich per SSH verbinden dürfen und welche Schlüsseltypen erlaubt sind. Andere Rollen verteilen SSH-Öffentlichkeitsschlüssel, erstellen Benutzer, konfigurieren sudo-Berechtigungen, rollout dotfiles oder installieren eine Reihe nützlicher Pakete.
Hier ist eine Liste empfohlener Rollen zur Verwaltung Ihres Linux-Hosts:
- do1jlr.base installiert einige nützliche Pakete
- do1jlr.users erstellt Benutzer und verwaltet Sudoer
- do1jlr.auth stellt SSH-Public-Keys bereit
- do1jlr.sshd (dies hier)
- do1jlr.dotfiles stellt einige stylische Dotfiles bereit
Gut zu wissen:
Die angegebenen Rollen verwenden die gleichen Variablen zur Erstellung von Konten, Administratoren usw. Aber die Rollen müssen in der richtigen Reihenfolge ausgeführt werden, um richtig zu funktionieren. Zum Beispiel können Sie keinen SSH-Public-Key für einen Benutzer bereitstellen, der noch nicht erstellt wurde.
Einige Variablen erklärt
Denken Sie daran: Sehen Sie sich defaults/main.yml
an, um alle möglichen Variablen zu finden.
SSH-Port
Der OpenSSH-Port ist mit der Variablensshd__port: 22
definiert. Ändern Sie ihn nach Belieben.Erlaubte Benutzer und Gruppen
Die Standardbenutzer, die sich anmelden dürfen, stammen aus der Listeusers: {}
.
Dieselbe Variableusers: {}
wird in den anderen empfohlenen SSH-Rollen verwendet.
Ein Beispiel, um die Anmeldung für die Benutzer und Gruppenl3d
undottojo
zuzulassen:
users:
l3d:
- l3d
ottojo:
- ottojo@uni
- ottojo@home
SSH-Anmeldung über Passwort
Die SSH-Passwortauthentifizierung ist übersshd__password_authentication: false
auf false gesetzt. Dies erlaubt es Ihnen nicht, Ihr Passwort zur Anmeldung über SSH zu verwenden.Verwaltung der SSH-Schlüsseltypen
Standardmäßig legt diese Rolle fest, welche SSH-Schlüsseltypen zur Anmeldung erlaubt sind. Wenn Sie dies nicht definieren möchten, ändern Sie die Variablesshd__manage_key_types: true
.Definieren Sie erlaubte SSH-Schlüsseltypen
Die erlaubten SSH-Schlüsseltypen sind in dieser Liste definiert. Einige von ihnen sind auskommentiert.
Bitte beachten Sie, dass standardmäßig nured25519
-Schlüssel erlaubt sind. Behalten Sie dies im Hinterkopf, wenn Sie einen RSA-Schlüssel verwenden.
sshd__key_types:
- 'ed25519'
# - 'rsa'
# - 'ecdsa'
# - 'dsa' # (nicht verwenden!)
Erweiterte SSH-Algorithmuseinstellungen
Sie können hier auch den verwendeten Schlüssel- und Kex-Algorithmus definieren. Für die Standardwerte und einige Beispiele für die Variablensshd__key_algorithmus
undsshd__kex_algorithmus
sehen Sie sichdefaults/main.yml
an. Sie können dies deaktivieren, indem Siesshd__manage_key_algorithmus
undsshd__manage_kex_algorithmus
auffalse
setzen.Neue SSH-Funktionen erzwingen
Wenn Sie wissen, dass Sie eine SSH-Version>8
verwenden, können Sie dies optional mittrue/false
mit der Variablensshd__version_is_above_eight
definieren.
Dateien
Die Hauptaufgabe dieser Rolle besteht darin, die Datei sshd.conf
zu konfigurieren.
Referenzen
Testen
Diese Rolle wird mit einigen Linting-Tests getestet. Leider weiß ich nicht, wie ich diese Rolle in einem Docker-Container ausführen kann, da systemd beteiligt ist... Wenn Sie Ideen zur Verbesserung der Tests haben, senden Sie mir bitte eine Nachricht, öffnen Sie ein Issue oder einen Pull Request. Wenn Sie mehr über unsere Tests erfahren möchten, schauen Sie sich bitte den GitHub-Marktplatz an.
Teststatus | GitHub-Marktplatz |
---|---|
Ansible-Rolle im Galaxy veröffentlichen | |
yamllint-github-action | |
ansible-lint action |
Manage your SSH Server - and deploy a good sshd configuration
ansible-galaxy install l3d.sshd