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. (siehe ➡ YubiKey Themenseite)

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

Anmeldung

Die Anmeldung am Client funktioniert für ssh und sftp wie folgt:

ssh benutz@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 Homeverzeichnis 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 FlieZilla

Der Zugriff mit einem grafischen SFTP-Client, wie z.B FileZilla ist auch möglich. Die Einstellungen bieten zwar keine Anmeldung mit einem Hardwartoken an, aber es funktioniert trotzdem.

FileZilla - SFTP und YubiKey
FileZilla – SFTP und YubiKey
FileZilla - SFTP und YubiKey
FileZilla – SFTP und YubiKey
FileZilla - SFTP und YubiKey
FileZilla – SFTP und YubiKey

Deep Dive

Ein kleiner Deep Dive zu SCP und SFTP findest du hier:

Deprecating scp – https://lwn.net/Articles/835962/