SSH - Zugangsberechtigungen via Schlüssel einschränken
Bekanntermaßen sind SSH-Verbindungen weitestgehend das Standardverfahren, um Serververbindungen sicher aufzubauen.
Normalerweise kommt in Bezug auf Authentifizierung eine Kombination aus Nutzernamen und Passwort zum Einsatz. Es gibt aber auch Varianten mit Zertifikat oder Schlüssel.
Letzteres sollte nicht nur Standard, sondern heute auch Thema sein. Üblicherweise erhältst du via SSH Vollzugriff (oke vielleicht kein root), es besteht allerdings die Möglichkeit diesen per authorized keys zu regulieren, so kannst du in einem SSH Schlüssel etwa eine IP-Beschränkung hinterlegen, um einen Zugriff weiter einzuschränken.
SSH AuthorizedKeysFile Format
In einem Standardsetup findest du vorhandene Schlüssel unter ~/.ssh/authorized_keys und genau hier möchte ich heute einen genaueren Blick darauf werfen.
Dort liegen die öffentlichen SSH-Schlüssel, die einen bestimmten Aufbau haben, dazu gleich mehr. Auch wird zwischen Version 1 und Version 2 unterschieden, wobei zwei der Standard sein sollte.
Ältere Semester kennen eventuell noch ~/.ssh/authorized_keys2, was ursprünglich für den zweiten Protokolltyp vorgesehen war, allerdings seit 2001 deprecated ist und heute maximal noch von böswilligen Akteuren missbraucht wird.
Zurück zu den Schlüsseln, folgende Aufteilung besitzen diese laut Norm:
- Öffentliche Schlüssel des Protokolls 1 bestehen aus den folgenden durch Leerzeichen getrennten Feldern: Optionen, Bits, Exponent, Modulus, Kommentar.
- Öffentliche Schlüssel des Protokolls 2 bestehen aus: Optionen, Keytype, base64-kodierter Schlüssel, Kommentar
- Das Optionsfeld ist optional. Sein Vorhandensein wird dadurch bestimmt, ob die Zeile mit einer Zahl beginnt oder nicht (das Optionsfeld beginnt nie mit einer Zahl).
- Die Optionen (falls vorhanden) bestehen aus durch Kommata getrennten Optionsangaben.
Im Detail ermöglichen sie, verschiedene Werte mitzugeben und anderen eine IP-Einschränkung.
SSH - Zugangsberechtigungen einschränken
Hier ein erstes Beispiel:
from="192.168.1.?,*.example.com" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com
Zur Erklärung: Du kannst in den Optionen Wildcards setzen. Das heißt, im Beispiel oben hätte 192.168.1.1-9 Zugriff, sowie Subdomains von example.com.
Eine weitere Möglichkeit wäre, die Option command zu verwenden, um direkte Befehle zu hinterlegen:
command="bash /opt/startworkflow" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com
command="/opt/mehrere_befehle.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com
Der Nutzer hat hier nur das Recht, das vorgegebene Kommando auszuführen, nicht mehr und nicht weniger
Kontrollieren kannst du solche Kommandos mit der Variable $SSH_ORIGINAL_COMMAND. Diese enthält die ursprüngliche Befehlszeile
sobald ein erzwungener Befehl ausgeführt wird.
Wenn du mehrere Befehle erlauben willst, kommst du nicht drumherum, ein Script zu schreiben, was diese Beschränkungen mehr oder weniger aushebelt.
Ein weiteres Beispiel zeigt die Verwendungen der Kommandos für SSH Tunneling bzw. Port Forwarding:
restrict,port-forwarding,permitopen="localhost:8765" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com
Hier wird explizit erlaubt, eine Verbindung auf Port 8765 herzustellen und alles andere bitte bleiben zu lassen. Auch echter Shell-Zugang (no-pty ist in restrict enthalten) wird unterbunden.
restrict
Enable all restrictions, i.e. disable port, agent and X11 forwarding, as well as disabling PTY allocation and execution of ~/.ssh/rc. If any future restriction capabilities are added to authorized_keys files they will be included in this set.
Du hast nun einen kleinen Einblick in die vielfältigen Konfigurationsmöglichkeiten von SSH-Schlüsseln erhalten. Gerade IP-Beschränkungen oder Limitierung auf Befehle kommen im Alltag vor und sind in diesem Sinne keine neue Methode.
SSH Tunneling ist eigentlich schon wieder ein anderes Kapitel.
Einen Überblick der SSH Befehle findest du bei den Ubuntu Manpages. Viel Spaß.


Ein neues Malware-Rootkit namens Pumakit wurde kürzlich entdeckt und stellt eine Bedrohung für Linux-Systeme dar. Es nutzt fortschrittliche Verschleierungsmethoden, um sich unbemerkt auf betroffenen Systemen zu verstecken. Aktuell betrifft die Schadsoftware ausschließlich Linux Kernel Versionen älter als 5.7. Das Sicherheitsunternehmen Elastic identifizierte Pumakit im September, nachdem ein verdächtiges Binary von „cron“ auf VirusTotal hochgeladen wurde. […]
Ich wünsche Euch und Euren Familien ein frohes Weihnachtsfest 2024! Feiert schön, habt ein paar ruhige Feiertage im Kreise Eurer Familien. Vielen Dank, dass Ihr dieses Jahr wieder bei fosstopia reingeschaut habt und als Leser unterwegs wart. Wir gehen in ein spannendes Jahr 2025. Einige interessante Kracher werden kommen. Sind wir schon jetzt gespannt! Frohe […]






2024 war ein Jahr voller spannender Entwicklungen und Jubiläen in der LinuxWelt. Von neuen Distributionen bis zu beeindruckenden Meilensteinen bei Softwareprojekten gab es viel zu entdecken. Hier sind einige Highlights. Meilensteine und Neuerscheinungen Folgende Meilensteine und Neuerungen möchte ich kurz und knackig hervorheben: Marktanteile und Entwicklungen Im März erreichte Linux mit einem Marktanteil von 4 […]
Die Document Foundation hat die allgemeine Verfügbarkeit von LibreOffice 24.8.4 angekündigt. Es ist die vierte Wartungsversion der LibreOffice-24.8-Serie und behebt über 50 gemeldete Fehler. Fünf Wochen nach Version 24.8.3 zielt dieses Update auf die Verbesserung der Stabilität und Zuverlässigkeit ab. Die behobenen Fehler umfassen Abstürze und weitere Probleme, die von Nutzern gemeldet wurden. Insgesamt behebt […]





Das Fedora Projekt und das Asahi-Linux Projekt haben zusammen die Verfügbarkeit von Fedora Asahi Remix 41 angekündigt. Die neue Version wurde speziell für Apple-Silicon-Macs entwickelt. Die Distribution basiert auf Fedora Linux 41 und nutzt standardmäßig KDE Plasma 6.2. Neu ist die Integration von x86/x86-64-Emulation, inklusive Unterstützung für AAA-Spiele dank des neuen Vulkan-1.4-Treibers. Fedora Asahi Remix […]