A techie blog

IT

Raspberry PI Cheat Sheet / Best Practices

Um einen Raspberry Pi zu nutzen muss man erstmal ein Betriebssystem aufspielen. Danach sollte man sich darum kümmern, dass dieser im Betrieb sicher und stabil läuft.

Hierfür habe ich ein paar Best Practices zusammen getragen:

Setup User vor dem ersten Booten

Um einen User automatisch anzulegen erstellt man auf der SD Karte in der boot Partition ein File namens “userconfig” mit folgendem Inhalt:

USERNAME:HASHED_PASSWORD

Um das gehashte Passwort zu erhalten kann man folgenden Befehl ausführen:

openssl passwd -6

Danach 2 Mal das Passwort eintippen und den ausgegebenen Hash ins File eintragen / kopieren.

Setup SSH vor dem ersten Booten

Falls kein Keyboard / Monitor zur Verfügung steht, kann man zusätzlich zur Useranlage noch SSH aktivieren, damit sollte (!) man zu dem Pi remote verbinden können.

TODO: Mit dem nächsten Pi testen und hier das Ergebnis nachtragen.

SSH Absichern

Um die Sicherheit beim SSH zu erhöhen, empfehle ich, den Login über Passwort zu deaktivieren und nur über ssh keys zu authentifizieren:

Sicherstellen, dass auf dem normalen PC / Laptop ein ssh key vorhanden ist.
Unter Linux wäre das zB:

cat ~/.ssh/id*.pub

Dann den ssh key auf den Raspi übertragen:

scp ~/.ssh/id*.pub USERNAME@IP:~/.ssh

Danach sicherstellen, dass eine ssh Session offen ist – diese bleibt auch offen wenn wir auf Key basierten Login einschränken und ist unser Recovery Mechanismus falls etwas schief geht.

Dann mittels folgendem Kommando ein neues File anlegen:

nano /etc/ssh/sshd_config.d/99-no-pwd.conf

und folgenden Inhalt einfügen:

# sshd_config defaults on Arch Linux
KbdInteractiveAuthentication no
UsePAM yes
PrintMotd no

abspeichern (STRG + X, und dann Y).

Nun muss der sshdaemon neu geladen werden, folgender Befehl macht das. Hier nochmal der Hinweis, unsere Recovery Session sollte noch offen sein, denn bei einem Fehler können wir sonst nur noch direkt auf das System zugreifen und nicht mehr remote.

sudo systemctl reload sshd

Wenn das funktioniert hat, dann öffnen wir eine zweite remote Session und prüfen, ob wir erfolgreich verbunden werden können, und ob keine Passworteingabe mehr notwendig ist.

Sollte kein erfolgreicher Login möglich sein, dann gehen wir in unsere Recovery Session und verschieben das config file mit

mv /etc/ssh/sshd_config.d/99-no-pwd.conf ~/

und laden wieder den sshdaemon neu:

sudo systemctl reload sshd

Dann prüfen wir wieder ob wir eine neue remote Session verbinden können, Danach können wir uns auf die Fehlersuche machen.