SSH-Grundlagen

Sofern wir Dienste im Netz bereitstellen wollen, brauchen wir in der Regel auch einen sicheren Zugriff auf die entsprechenden Server. Das Protokoll der Wahl dafür ist ssh, das in wenigen Schritten auf einem System installiert ist und sofort seine Arbeit aufnimmt. Die Verbindung zwischen einem Admin-PC/-Notebook und der Remote-Maschine läuft ab diesem Zeitpunkt verschlüsselt.

Es müssen jedoch noch einige weitere Konfigurationen vorgenommen werden, um einen wirklich sicheren Zugriff zu gewährleisten. Im folgenden Beitrag, beschreibe ich die (aus meiner Sicht) dafür notwendigen Schritte, um einen OpenSSH-Server auf einem Linux-System zu betreiben.

Read full post gblog_arrow_right

Blog umgezogen

Dieser Blog hier läuft nun seit etwa 18 Monaten. Gleich zu Beginn hatte ich hier dokumentiert, wie ich das mit Hilfe von Codeberg CI und Codeberg Pages umgesetzt habe. Im Prinzip hat das auch super funktioniert und ich war mit dem Setting grundsätzlich zufrieden.

Allerdings sind die Seiten von https://codeberg.org ziemlich unter Last und ich hatte fast täglich kleine Downtimes. Dieser Blog hat wirklich keine besonders große Reichweite und von daher hat mich das bisher wenig gestört. Allerdings war die Seite diese Woche zum zweiten Mal in einer Veranstaltung offline, in der ich als Referent auf Inhalte verweisen wollte.

Aus diesem Grund habe ich beschlossen, den Blog auf einen eigenen Webserver umzuziehen. Falls das hier irgendwann Mal jemand von Codeberg e. V. lesen sollte: Bitte nicht falsch verstehen … Ihr macht einen super Job. Ich bin und bleibe ein großer Codeberg-Fan und werde weiterhin alle meine öffentlichen Git-Repos unter https://codeberg.org/toheine ablegen.

Read full post gblog_arrow_right

Shell-Session-Recordings mit asciinema via Skript

Ich hab mir in der Adventszeit mit meinen Kollegen Gedanken darüber gemacht, wie wir Linux-Befehle für unsere Schülerinnen und Schüler besser zugänglich machen. Die Lebenswelt unserer Lernenden fordert an dieser Stelle häufig … Videos. Das ist aber so überhaupt nicht meine Art der Unterrichtsgestaltung. Ich hab zwar schon das ein oder andere Video erstellt, aber das skaliert nicht im Alltag für dutzende Themen.

Dabei fiel mir ein, dass ich schon vor drei Jahren mit asciinema experimentiert hatte. Allerdings ist das damals für mich eingeschlafen. Nun nahm ich gestern einen neuen Anlauf und hab drei Bash-Sessions aufgenommen. Das ist relativ einfach. Allerdings vertippte ich mich häufig bei der Eingabe und musste die Befehls-Sequenzen wiederholt aufnehmen. Und mit dem Endergebnis war ich immer noch nicht zufrieden.

Das war etwas frustrierend und ich dachte mir … das kann ich doch mit einem kleinen Bash-Skript lösen. Die Umsetzung und das Ergebnis beschreibe ich im folgenden Beitrag.

Read full post gblog_arrow_right

Linux-Distris veröffentlicht

Seit heute gibt es auf dieser Seite eine (derzeit noch) kleine Info zu ausgewählten Linux-Distributionen die ich unter dem Menü-Punkt Linux-Distris verortet habe. Dort werden Linux-Distributionen vorgestellt, mit denen ich arbeite UND die ich empfehlen kann. Ich hab mit Debian GNU/Linux, Arch Linux und Linux Mint begonnen. Weitere Distributionen werden folgen.

Die in der Seite erwähnten Aspekte bleiben ziemlich an der Oberfläche und beleuchten kurz die Zielgruppe, Kernaspekte der jeweiligen Distribution, warum ich diese einsetze und wo es weitere Infos gibt. Ich hoffe dadurch ein wenig Licht in den dichten Wald der vielen Distributionen zu bekommen.

Wer das liest, dem muss klar sein, dass ich das durch meine Brille beurteile. Andere Distributionen sind bestimmt auch gut!

Read full post gblog_arrow_right

Git-Branch im Bash-Prompt anzeigen

Meine kleinen Coding-Projekte setze ich meistens, direkt auf der Kommandozeile, mit dem Editor vim um. Ich arbeite eher selten in dem grafischen Editor VSCodium und noch weniger in einer Entwicklungsumgebung (IDE) wie Eclipse, Netbeans oder IntelliJ. Gerade die grafischen Tools integrieren die Versionsverwaltung git sehr gut und man hat als Entwickler jederzeit den Einblick, wie es um die Versionierung steht. Auf der Kommandozeile sehe ich das nur, wenn ich die jeweiligen Befehle wie z. B. git branch oder git log eingebe.

Vor ein paar Wochen ist es dann zum wiederholten Mal passiert: Ich hatte im falschen Branch gearbeitet (genervter Blick).

Mein Gedanke: Das passiert mir nicht nochmal … ich will den jeweiligen Branch im Shell-Prompt sehen, sofern ich in einem git-Repo arbeite. Wie ich das umgesetzt hab, dokumentiere ich im folgenden Beitrag.

Read full post gblog_arrow_right

Screenshots mit Flameshot

Es gibt einige Tools, die uns die Arbeit erleichtern. Eine Anwendung, die ich täglich verwende ist Flameshot, um Screenshots zu erstellen und direkt zu bearbeiten. Im Gegensatz zu den üblichen Screenshot-Tools, die von Seiten des Betriebssystems bzw. der jeweiligen Linux-Distribution vorinstalliert sind, bietet Flameshot einen größeren Funktionsumfang und ist ziemlich eingängig zu bedienen. Screenshots für Anleitungen sind so im Handumdrehen erstellt.

Read full post gblog_arrow_right

Codeberg-CI - pipeline definition not found

Heute wollte ich nach langer Zeit meinen Blog hier wieder mit Inhalten füllen. Nach dem git push auf Codeberg, hat Woodpecker einen Fehler beim build gemeldet: “pipeline definition not found”. Das hat mich doch sehr gewundert, da ich weder an der .woodpecker.yml im Codeberg-Repo noch in Woodpecker selbst Änderungen vorgenommen hatte.

Scheinbar bin ich nicht die erste Person, die darüber stolpert (siehe hier ). Letztendlich hat das komplette Löschen des Repos in Woodpecker und das neue Anlegen geholfen.

Read full post gblog_arrow_right

DNS-01 challenge mit dehydrated und bind9

Es gibt viele Wege zu einem gültigen SSL/-TLS-Zertifikat für die eigene Server-Landschaft. In zahlreichen Anleitungen beschrieben ist die Möglichkeit, eine HTTP-01 challenge auf dem jeweiligen Webserver durchzuführen. Dieses Verfahren ist gut und solide. Spätestens wenn Zertifikate für Server benötigt werden, die nicht über das Internet erreichbar sind/sein sollen, scheitert diese Vorgehensweise jedoch. Zudem können Wildcard-Zertifikate nur über die DNS-01 Challenge austgestellt werden.

Diese Anleitung beschreibt eine Einrichtung eines eigenen DNS-Servers mit bind9, der Einrichtung des ACME-Clients dehydrated und dem anschließenden automatischen Erzeugen von Let’s-Encrypt-Zertifikaten via DNS-01 challenge. Diese werden im Anschluss via ansible auf die Zielserver verteilt

Read full post gblog_arrow_right