SFTP mit einem YubiKey absichern
SFTP steht für SSH File Transfer Protocol und ermöglicht den einfachen Austausch, also das Kopieren und Bearbeiten von Dateien auf einem Server.
Der Zugriff per SFTP lässt sich auch mit einem Hardwaretoken, wie dem YubiKey, absichern. Die Eingabe eines Passworts ist damit obsolet und die Sicherheit erhöht sich.
Die Einstellungen, die für SFTP benötigt werden, halten sich in Grenzen und sind sehr schnell konfiguriert.
Neue Gruppe für SFTP anlegen
Es wird eine neue Gruppe angelegt, die alle Benutzer beinhaltet, die per SFTP auf den Server zugreifen dürfen.
YubiKey Themenseite
Hier geht es zur 👉 YubiKey Themenseite, dort findest du noch mehr Beiträge rund um den YubiKey.
sudo addgroup sftpexchange
Benutzer der Gruppe zuweisen
Der bestehender Benutzer benutzer
wird der neuen Gruppe sftpexchange
zugewiesen:
sudo usermod -a -G sftpexchange benutzer
Ob der Benutzer der Gruppe sftpexchange
hinzugefügt wurde, lässt sich in der Datei /etc/group
nachschauen.
less /etc/group
sshd_config anpassen
Die Datei sshd_config
ist anzupassen, damit der Zugriff per SFTP erlaubt ist.
#####################
# SFTP - OPTIONAL
#####################
# This section must be placed at the very end of sshd_config
###
# Subsystem
###
# Enable to built-in implementation of SFTP
# Configures an external subsystem (e.g. file transfer daemon).
# Arguments should be a subsystem name and a command (with optional arguments)
# to execute upon subsystem request.
# The command sftp-server implements the SFTP file transfer subsystem.
# Alternately the name internal-sftp implements an in-process SFTP server.
# This may simplify configurations using ChrootDirectory to force a different filesystem
# root on clients.
# By default no subsystems are defined.
Subsystem sftp internal-sftp
###
# Match Group
###
# Only members of this group are allowed to connect via SFTP
Match Group sftpexchange
###
# PermitTunnel
###
# Specifies whether tun(4) device forwarding is allowed.
# The argument must be yes, point-to-point (layer 3), ethernet (layer 2), or
# no. Specifying yes permits both point-to-point and ethernet.
# The default is "no".
PermitTunnel no
SSH neustarten
Nach einem Neustart des SSH Services ist der Zugriff per SFTP für Mitglieder der Gruppe sftpexchange
möglich.
sudo service ssh restart
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Anmeldung
Die Anmeldung am Client funktioniert für ssh und sftp wie folgt:
ssh benutzer@ip-adresse
sftp benutzer@ipadresse
Die Eingabe eines Passworts ist nicht erforderlich. Es wird automatisch der am Client angeschlossene YubiKey für die Anmeldung verwendet.
Dateien übertragen
Dateien lassen sich über die CLI vom Client auf den Server übertragen und umgekehrt
Client → Server
Für den Übertrag von Dateien und Ordnern vom Client wird der Befehl put
verwendet.
sftp> put ~/datei.txt
Die Datei datei.txt
wird direkt in das Home-Verzeichnis des Benutzers auf dem Server kopiert.
put ~/datei.txt /home/benutzer/Downloads/datei-kopiert.txt
Die Datei datei.txt
wird vom Client auf den Server in das Verzeichnis /home/benutzer/Downloads/
mit dem neuen Namen datei-kopiert.txt
übertragen.
Für das Kopieren ganzer Ordner wird ebenfalls der Befehl put
genutzt, jedoch mit der Option -r
für rekursiv.
Mit der Option -p
lassen sich die Dateiberechtigungen und auch die Zeitstempel übertragen. Das kann bei bestimmten Fällen notwendig sein, um keine Informationen zu verlieren.
Server → Client
Der Dateiübertrag in die andere Richtung funktioniert mit dem Befehl get
für Dateien und get -r
für Ordner.
get datei.txt /home/benutzer/Downloads
get -r ordner /home/benutzer/Downloads/ordner-kopiert
Mit der Option -p
lassen sich die Dateiberechtigungen und auch die Zeitstempel übertragen. Das kann bei bestimmten Fällen notwendig sein, um keine Informationen zu verlieren.
SFTP-Zugriff mit Client FileZilla
Der Zugriff mit einem grafischen SFTP-Client, wie z.B. FileZilla ist auch möglich. Die Einstellungen bieten zwar keine Anmeldung mit einem Hardwaretoken an, aber es funktioniert trotzdem.
Deep Dive
Ein kleiner Deep Dive zu SCP und SFTP findest du hier:
Note
Artikel überarbeitet: November 2023
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
Foto von Brina Blum auf Unsplash.com