l3d.sshd
Serwer OpenSSH
Rola Ansible do konfigurowania serwera OpenSSH SSHD
.
Głównym celem tej roli jest zarządzanie plikiem sshd.conf
oraz wdrażanie określonych kluczy hostów SSH w skonfigurowanej lokalizacji.
Porada
Używaj kryptografii krzywych eliptycznych dla swoich kluczy SSH:
ssh-keygen -t ed25519
Domyślne wartości tej roli pozwalają jedynie na klucze ed25519, ale możesz to zmienić według własnych potrzeb.
Zamierzona użyteczność
Ta rola jest zaprojektowana do zarządzania hostami Linux z następującymi rolami. Ta rola koncentruje się głównie na dobrej konfiguracji SSHD i może określać, którzy użytkownicy mają prawo łączyć się za pomocą SSH oraz jakie typy kluczy SSH są dozwolone. Inne role rozdystrybują publiczne klucze SSH, utworzą użytkowników oraz skonfigurują uprawnienia sudo, wdrożą pliki dotfiles lub zainstalują szereg użytecznych pakietów.
Lista sugerowanych ról do zarządzania hostem Linux:
- do1jlr.base zainstaluj kilka użytecznych pakietów
- do1jlr.users utwórz użytkownika i zarządzaj sudoers
- do1jlr.auth wdrażaj publiczne klucze SSH
- do1jlr.sshd (ta rola)
- do1jlr.dotfiles wdrażaj ładne pliki dotfiles
Dobre do wiedzenia:
Wymienione role używają tych samych zmiennych do tworzenia kont, administratorów itd. Rola musi być uruchamiana we właściwej kolejności, aby działała poprawnie. Na przykład nie możesz wdrożyć publicznego klucza SSH dla użytkownika, który nie został utworzony.
Wyjaśnienie niektórych zmiennych
Pamiętaj: Zajrzyj do defaults/main.yml
po wszystkie możliwe zmienne.
Port SSH
Port OpenSSH jest zdefiniowany zmiennąsshd__port: 22
. Zmień to, jeśli chcesz.Dozwoleni użytkownicy i grupy
Domyślni użytkownicy, którzy mogą się zalogować, pochodzą z listyusers: {}
.
Ta sama zmiennausers: {}
jest używana w innych polecanych rolach SSH.
Przykład, aby zezwolić na logowanie dla użytkowników i grup o nazwachl3d
iottojo
:
users:
l3d:
- l3d
ottojo:
- ottojo@uni
- ottojo@home
Logowanie SSH za pomocą hasła
Autoryzacja hasła SSH jest ustawiona na false przezsshd__password_authentication: false
. To nie pozwoli się zalogować za pomocą hasła przez SSH.Zarządzaj typami kluczy SSH
Domyślnie ta rola konfiguruje, które typy kluczy SSH mogą się zalogować. Jeśli nie chcesz tego definiować, zmień zmiennąsshd__manage_key_types: true
.Zdefiniowane dozwolone typy kluczy SSH
Dozwolone typy kluczy SSH są określone w tej liście. Niektóre z nich są skomentowane.
Pamiętaj, że domyślnie dozwolone są tylko kluczeed25519
. Pamiętaj o tym, jeśli używasz klucza rsa.
sshd__key_types:
- 'ed25519'
# - 'rsa'
# - 'ecdsa'
# - 'dsa' # (nie używaj!)
Zaawansowane ustawienia algorytmów SSH
Możesz zdefiniować używane algorytmy kluczy i Kex tutaj. Dla domyślnych wartości i przykładów zmiennychsshd__key_algorithmus
isshd__kex_algorithmus
spójrz dodefaults/main.yml
. Możesz to wyłączyć, ustawiającsshd__manage_key_algorithmus
isshd__manage_kex_algorithmus
nafalse
.wymuszenie nowych funkcji SSH
Jeśli wiesz, że używasz wersji SSH>8
, możesz opcjonalnie zdefiniować to ze zmiennąsshd__version_is_above_eight
w wartościachtrue/false
.
Pliki
Głównym zadaniem tej roli jest skonfigurowanie pliku sshd.conf
.
Odnośniki
Testowanie
Ta rola jest testowana za pomocą kilku testów lintingowych. Niestety nie wiem, jak uruchomić tę rolę w kontenerze docker, ponieważ zaangażowany jest systemd... Jeśli masz pomysły, jak poprawić testy, wyślij mi wiadomość, otwórz zgłoszenie lub Pull Request. Jeśli chcesz dowiedzieć się więcej o naszych testach, spójrz do github marketplace.
status testu | Github Marketplace |
---|---|
publish-ansible-role-to-galaxy | |
yamllint-github-action | |
ansible-lint action |
Manage your SSH Server - and deploy a good sshd configuration
ansible-galaxy install l3d.sshd