aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin <valentin@fricklerhandwerk.de>2025-11-06 15:42:52 +0100
committerValentin <valentin@fricklerhandwerk.de>2025-11-06 16:46:28 +0100
commit3a9952d3d4c9bb851e7a6a4d5b3e06676995988a (patch)
tree3e9e407dd32cf591b52968bb7f3ee6a32601b38d
parent3ef375132b8e13fa7ec5a566f0ccfa27d8cda257 (diff)
Anleitung zum Hinzufügen von Administratoren
-rw-r--r--README.md46
-rw-r--r--keys.nix11
2 files changed, 39 insertions, 18 deletions
diff --git a/README.md b/README.md
index d60f3dc..018ba09 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,39 @@ Spätere Aufrufe sind viel schneller, da nur Änderungen verarbeitet werden müs
## Abläufe
+### SSH einrichten
+
+Folgendes in `~/.ssh/config` eintragen:
+
+```
+Host tharos
+ ForwardAgent yes
+ HostName 81.169.239.254
+ IdentityFile /home/<user>/.ssh/tharos
+```
+
+wobei `<user>` das eigene lokale Linux-Benutzerkonto ist.
+
+### Administrator hinzufügen
+
+Nutzernamen von Administratoren und ihre SSH-Keys sind unter [`keys`](./keys) organisiert.
+Das Format des Ordners ist in [`keys.nix`](./keys.nix) dokumentiert.
+
+
+Sich selbst als Administrator mit genau einem SSH-Schlüssel hinzuzufügen:
+
+```bash
+cat ~/.ssh/foo.pub > ./keys/$USER
+```
+
+Sich selbst als Administrator mit mehreren Schlüsseln hinzuzufügen:
+
+```bash
+mkdir .keys/$USER
+cp ~/.ssh/foo.pub > ./keys/$USER/
+cp ~/.ssh/bar.pub > ./keys/$USER/
+```
+
### Tests durchführen
```bash
@@ -62,16 +95,7 @@ nix run .#infect-tharos
Die NixOS-Installation erfolgt mit [`nixos-anywhere`](https://nix-community.github.io/nixos-anywhere/).
-Angenommen, in `~/.ssh/config` ist Folgendes eingetragen:
-
-```
-Host tharos
- ForwardAgent yes
- HostName 81.169.239.254
- IdentityFile /home/user/.ssh/tharos
-```
-
-Dann kann man sich mit dem Produktionssystem über SSH verbinden:
+Mit dem laufenden Produktionssystem über SSH verbinden:
```bash
ssh tharos
@@ -96,7 +120,5 @@ Flake Parts sind dokumentiert unter <https://flake.parts>.
Zusätzlich wird mit `flakes.machines` eine eigene Abstraktion verwendet um Systeme und entsprechende Hilfswerkzeuge zu konfigurieren.
Dies ist momentan nur im Quellcode dokumentiert in [`machines.nix`](./machines.nix).
-Nutzernamen von Administratoren und ihre SSH-Keys sind unter [`keys`](./keys) organisiert.
-
Zur Zeit ist genau eine Maschine in Betrieb, die in [`tharos.nix`](./tharos.nix) spezifiziert ist.
Der Server läuft bei [STRATO](https://www.strato.de) unter Kundennummer 73292174, Auftragsnummer 7709638.
diff --git a/keys.nix b/keys.nix
index 0076788..5037ad1 100644
--- a/keys.nix
+++ b/keys.nix
@@ -8,16 +8,15 @@ in
Dateisystempfade zu öffentlichen SSH-Schlüsseln für alle Administratoren
Kann benutzt werden um entsprechende Systemnutzer in `users.users` automatisch zu erstellen.
+
+ Format der Verzeichniseinträge muss eines der Folgenden sein:
+ - Datei mit genau einem Eintrag für den jeweiligen Nutzer
+ - Verzeichnis mit Dateien die jeweils einen Eintrag enthalten
'';
type = with types; attrsOf (listOf path);
default =
let
- /*
- Dateinamen mit öffentlichen SSH-Schlüsseln aus einem Verzeichnis mit Nutzernamen auslesen.
- Format der Verzeichniseinträrge muss eines der Folgenden sein:
- - Datei mit genau einem Eintrag für den jeweiligen Nutzer
- - Verzeichnis mit Dateien die jeweils einen Eintrag enthalten
- */
+ # Dateinamen mit öffentlichen SSH-Schlüsseln aus einem Verzeichnis mit Nutzernamen auslesen.
get-key-files =
dir:
let