sftp-Server mit ProFTPd bereitstellen:

Eine Anforderung war einen sftp-Server mit Authentifizierung über einen Public-Key (vom Clients-System) zu realisieren.

Installation von Proftpd

apt-get update
apt-get install proftpd

In der Konfiguration (/etc/proftpd/proftpd.conf) Folgendes anpassen:

ServerName "sftp.example.net"
DefaultRoot ~

Im Anschluss wird eine neue Datei unter /etc/proftpd/conf.d/stfpd.conf mit folgendem Inhalt angelegt:

<IfModule mod_sftp.c>

        SFTPEngine on
        # If you want your SFTP server on a different port, change the following
        # line accordingly
        Port 2222

        # Log file
        SFTPLog /var/log/proftpd/sftp.log

        # Configure both the RSA and DSA host keys, using the same host key
        # files that OpenSSH uses.
        SFTPHostKey /etc/ssh/ssh_host_rsa_key
        SFTPHostKey /etc/ssh/ssh_host_dsa_key

        SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u

        # Enable compression
        SFTPCompression delayed

        # Default is: publickey password
        SFTPAuthMethods publickey

</IfModule>

Jetzt legt man einen Ordner an, wo die PublicKeys abgespeichert werden.
mkdir /etc/proftpd/authorized_keys

Anschließend proftpd neu starten
service proftpd restart
Anlegen eine Benutzers mit SSH-Key:
useradd ftpuser -m -s /bin/bash
sudo -u ftpuser ssh-keygen -t rsa
Beim Assistenten die Abfragen bestätigen und ohne Passpghrase weiter bestätigen.

Jetzt wirde der vorher generierte Benutzer-Key in ein konformes Format (RFC4716) konvertiert und in das entsprechende Verzeichnis des Benutzers kopiert:

Dies kann mit beliebig vielen Benutzern geschehen.
Alternativ kann hier auch ein bestehender Private-Key eines Client(-Servers) genommen werden - hier wird einfach der Inhalt der Datei id_sa.pub entsprechend mit dem Key des Client-(Servers) ersetzt und im Anschluss konvertiert.

ssh-keygen -e -f ~ftpuser/.ssh/id_rsa.pub | tee /etc/proftpd/authorized_keys/ftpuser
Abschließend sollte der proftpd Dienst noch neu gestartet werden:
service proftpd restart
Nun kann eine Verbindung mit einem entsprechenden Client oder Software aufgebaut werden (Port 2222 beachten)
© 2024 ziggymania.de Designed S.Wommer