SSH-Schlüssel neu generieren

Um Verbindung mittels SSH aufzubauen bzw. solche entgegenzunehmen, wird ein SSH-Schlüssel benötigt. Für den OpenSSH-Server finden sich diese Schlüssel im Verzeichnis /etc/ssh/. Um die Schlüssel für den Server neu zu generieren, müssen die alten Schlüssel gelöscht werden:

rm /etc/ssh/ssh_host_*

Anschließend wird der OpenSSH-Server neu konfiguriert, damit neue Schlüssel erzeugt werden:

dpkg-reconfigure openssh-server

Nachdem dies geschehen ist, muss im letzten Schritt der SSH-Server neu gestartet werden:

systemctl restart ssh

Damit sind die Schlüssel ausgetauscht. Bei einem erneuten Verbindungsversuch, wird ein entsprechender Client deshalb eine entsprechende Warnmeldung ausgeben, welche dann bestätigt werden muss.

Mainboard-Informationen unter Linux ermitteln

Manchmal ist es notwendig im Terminal unter Linux einige Informationen über das verbaute Mainboard zu ermitteln. Hierfür dient der Befehl:

dmidecode -t 2

Diese liest die entsprechenden Daten auf dem sysfs und zeigt sie an:

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: ASUSTeK COMPUTER INC.
	Product Name: WS C246 DC
	Version: Rev 1.xx
	Serial Number: 190856070000221
	Asset Tag: Default string
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: Default string
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0

Verwaiste Screen-Session entfernen

Der Befehl screen dient dazu Terminal-Sitzungen zu erzeugen, welche im Hintergrund weiterlaufen können. Allerdings kann es hierbei unter Umständen passieren, das eine solche Session verweist bzw. nicht mehr reagiert. In einem solchen Fall kann die Session beendet werden. Tritt dies bei mehreren Sitzungen auf, kann der Befehl:

screen -wipe

genutzt werden. Der Befehl überprüft alle laufenden screen-Sitzungen und entfernt die Einträge von abgestürzten oder nicht mehr existierenden screen-Sitzungen.

Previews unter Nextcloud deaktivieren

Nextcloud erzeugt Vorschaubilder von Dateien, wie z.B. Bildern und Videos. In vielen Fällen ist das ein sinnvolles Feature, allerdings kann es bei Bedarf auch deaktiviert werden. Dazu muss im ersten Schritt die Konfigurationsdatei geöffnet werden:

nano config/config.php

Dort sollte dann folgende Option hinzugefügt werden:

'enable_previews' => false

Nachdem die Konfiguration gespeichert wurde, werden keinerlei Vorschaubilder mehr generiert. Diese werden im Normalfall in einem Ordner innerhalb des data-Verzeichnisses gespeichert. Somit wirkt sich die Einstellung nicht nur auf die Performance, sondern auch auf den Speicherbedarf aus.

Zufällige Inhalte in einem WordPress-Widget darstellen

Um zufällige Inhalte in einem WordPress-Widget darzustellen, gibt es einige Plugins, welche sich dieser Anforderung annehmen. Allerdings wirken sie in den meisten Fällen leicht überdimensioniert, sodass ich auf der Suche nach einer leichtgewichtigen Lösung war. Herausgekommen ist dabei folgendes Snippet:

<div id="content0" style="display: none;">A</div>
<div id="content1" style="display: none;">B</div>

<script>
  randomIndex = Math.floor(Math.random()*2);
  document.getElementById("content" + randomIndex).style.display = "inline";
</script>

Für jeden zufälligen Inhalt wird ein div-Container angelegt und dieser ist initial nicht sichtbar. Im Skriptteil wird nun zufällig einer dieser div-Container sichtbar geschaltet. Einziger Wermutstropfen ist, dass der Widget-Titel auf diese Art und Weise nicht angepasst werden kann. Durch eine erweitere Version des Skriptes kann dieses Problem beseitigt werden:

<div id="content0" style="display: none;">A</div>
<div id="content1" style="display: none;">B</div>

<script>
  randomIndex = Math.floor(Math.random()*2);
  document.getElementById("content" + randomIndex).style.display = "inline";
  
  const titles = ["A", "B"];
  document.getElementById("custom_html-6").getElementsByClassName("widget-title")[0].textContent=titles[randomIndex];
</script>

In dieser Version werden die Titel in einem Array hinterlegt. Die entsprechende ID des gewünschten Widgets muss vorher einmalig per Hand ermittelt werden und kann dann genutzt werden, um den Titel zu setzen.