Ed25519-SSH-Schlüssel im Terminal generieren

Wer in den letzten Jahren einen SSH-Schlüssel generiert hat, wird meist RSA als kryptografischen Verfahren dafür genutzt haben. Mittlerweile geht die Empfehlung für neue Schlüssel mehrheitlich zu solchen, welche auf elliptische Kurven basieren. Ein solcher Schlüssel kann im Terminal über den Befehl:

ssh-keygen -t ed25519

generiert werden. Alternativ kann eine entsprechende E-Mail-Adresse für den Schlüssel definiert werden:

ssh-keygen -t ed25519 -C ""

Anschließend wird ein entsprechender Schlüssel erzeugt:

The key fingerprint is:
SHA256:1RCIsYVjuj9JUdpkAQEpnHmQEI2n+VsW1hr5dPk/X9w 
The key's randomart image is:
+--[ED25519 256]--+
|o*.=.o+*ooo.     |
|. O o =o=  o     |
| + o =.B .. .    |
|o   * = +.       |
| . . B oS.       |
|  . = o   .    ..|
|   + o .   .    E|
|  .   +     o  . |
|       .     o.  |
+----[SHA256]-----+

Wer sich den öffentlichen Schlüssel anschaut, wird feststellen, das dieser wesentlich kürzer ist:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQFUwFRKdr/6xq208X6ME9kQF0pxVWSEmIkMqJXwUZ2 

Die Länge des Schlüssels verglichen mit den RSA-Schlüsseln sagt allerdings direkt nichts über die Sicherheit des Schlüssels aus. Grundsätzlich sind die Ed25519-Schlüssel kürzer als vergleichbare RSA-Schlüssel. Daneben ist das Verfahren schneller und resistenter gegen Kollisionsattacken und sollte daher in Zukunft gewählt werden.

Probleme mit rsync bei der Kompression über SSH

Ich nutze rsync in Verbindung mit dem rsync-time-backup für einfache Backups eines Servers. In letzter Zeit erhielt ich dort ein Problem mit bestimmten Dateien, welche ich synchronisieren wollte. rsync brach hier mit der Meldung:

deflate on token returned 0 (32765 bytes left)

ab. Abhilfe schaffte es hier rsync, ohne die Option –compress zu nutzen. Hier liegt wohl ein Problem bzw. ein Bug vor, der unter Umständen zu diesem Verhalten führt. Da rsync-time-backup diese Option bei einem Backup über SSH automatisch hinzufügt, habe ich die entsprechende Zeile:

RSYNC_FLAGS="$RSYNC_FLAGS --compress"

auskommentiert. Damit funktionierte der entsprechende Synchronisierungsvorgang wieder ohne Probleme. Einziger Nachteil war die erhöhte Laufzeit der Synchronisierung, da nun mehr Daten über die Leitung gesendet werden.

PHP-Version in der Shell bei all-inkl einstellen

Beim Webhoster all-inkl wird bei den größeren Paketen ein SSH-Zugang zu einer Shell mit angeboten. Mit diesem Zugang ist es unter anderem möglich PHP auf der Konsole auszuführen. Standardmäßig geschieht dies über den Befehl php. Aktuell nutzt der Befehl die Version 7.0.33 von PHP. Soll stattdessen eine höhere Version genutzt werden, so kann die symbolische Verknüpfung entsprechend verändert werden:

ln -sfv /usr/bin/php73 /usr/bin/php

Damit würde der Befehl php nun auf ein PHP in Version 7.3 zeigen. Neben der Version 7.3 sind noch weitere Versionen verfügbar:

/usr/bin/php56
/usr/bin/php70
/usr/bin/php71
/usr/bin/php72
/usr/bin/php73

Auch ohne Änderung der symbolischen Verknüfung kann die gewünschte PHP-Version verwendet werden, indem sie direkt aufgerufen wird:

/usr/bin/php72 update.php

In diesem Fall würde das Skript update.php mit der PHP-Version 7.2 ausgeführt werden.

MikroTik-App für iOS

Für die Verwaltung eines MikroTik-Routers können unterschiedlichste Möglichkeiten gewählt werden. Neben dem Webinterface, WinBox oder der Konfiguration über das Terminal, z.B. per SSH, gibt es seit einiger Zeit auch eine App für iOS.

‎MikroTik
Price: Free

Mit dieser App können die Geräte unterwegs verwaltet werden. Neben den Quick-Setup stehen auch die detaillierten Einstellungen der MikroTik-Router zur Verfügung.

Die MikroTik-App auf einem iPhone

Früher standen nur Drittanbieter-Apps für die mobile Verwaltung von MikroTik-Routern zur Verfügung. Im Gegensatz zu diesen verrichtet die offizielle MikroTik-App klaglos ihren Dienst.

MikroTik Pro
Price: Free

Neben der iOS-App wird auch eine App für Android von MikroTik bereitgestellt.

Lizenz eines MikroTik-Routers sichern

Auf MikroTik-Routern läuft als Betriebssystem das sogenannte RouterOS. Dieses auf Linux basierende System ist für die Funktionalität des jeweiligen Routers zuständig. Zu jedem Router bzw. jeder RouterOS-Installation gehört eine entsprechende Lizenz. Im Terminal können sich die Informationen über die Lizenz über dem Befehl:

/system license print

angesehen werden. Der Nutzer erhält eine Auflistung der aktuellen Lizenz:

software-id: XXXX-XXXX
nlevel: 4
features:

MikroTik unterscheidet bei RouterOS-Lizenzen sogenannte Level. Um so höher das Level um so mehr VPN-Verbindungen und ähnliches können mit dem Gerät genutzt werden. Auch unterscheiden sich die unterschiedlichen Level nicht in ihrer Funktionalität. Im Normalfall ist die Lizenz sicher innerhalb des Routers abgelegt. Aber natürlich kann es passieren, dass die entsprechende Lizenz verloren geht. Für einen solchen Fall kann die Lizenz über das Terminal gesichert werden. Dazu dient der Befehl:

/system license output

Anschließend wird eine Datei nach dem Schema XXXX-XXXX auf dem Gerät abgelegt, welche z.B. über Files im Webinterface heruntergeladen werden kann. Soll die Lizenz später wieder auf dem Gerät aktiviert werden, kann hierfür der entsprechende Import genutzt werden:

/system license import file-name=XXXX-XXXX.key

Ist die Lizenz auf dem Gerät bereits vorhanden, erhält der Nutzer die Meldung:

failure: no new key found