Ubuntu – SFTP Server einrichten

Eine Anleitung um einen kostenlosen SFTP Server auf Ubuntu einzurichten:

Da ich es leid war meine Dateien unverschlüsselt übers Netz zu schicken habe ich mich mal mit SFTP beschäftigt. Mit dieser Anleitung ist ein kleiner kostenloser SFTP Server auf Ubuntu möglich und sollte für normale Tätigkeiten ausreichend sein.

Als erstes Synaptic aufrufen und dort nach dem openssh-server suchen um ihn zu installieren (falls noch nicht geschehen)

openssh-server

Auswählen und installieren.

Dann kanns mit dem Einrichtung losgehen. Es muss die sshd_config Datei verändert werden. Ich nutze dafür gedit.

sudo gedit /etc/ssh/sshd_config

Diese Zeile bei Subsystem hinzügen und die andere auskommentieren.

Subsystem sftp internal-sftp
#Subsystem sftp /usr/lib/openssh/sftp-server

User und Verzeichnisse anlegen:
(Der username ist hier im Beispiel maria)

sudo mkdir /home/maria

sudo useradd maria

Hier werden die Zugriffsrechte vergeben.

(We’ll have to set their home directory permissions appropriately. It’s important that root owns this and that its group ID is identical to the username, and that the permissions are set so that only root can write:)

sudo chown root:maria /home/maria

sudo chmod 755 /home/maria

sudo usermod -d /home/maria maria

Jetzt noch das Passwort vergeben

sudo passwd maria

dann das gewünschte Passwort eingeben.

(Set the new user a dummy shell  – so they don’t have real shell access)
sudo usermod -s /bin/false maria

Jetzt müssen wir noch festlegen das der angelegte User auch nur Zugriff auf sein Home Verzeichnis hat. Dafür müssen wir nochmal die Datei /etc/ssh/sshd_config bearbeiten.

sudo gedit /etc/ssh/sshd_config

Dort ganz unten am Ende der date folgendes anfügen.

Match User maria
ChrootDirectory /home/maria
ForceCommand internal-sftp

Wenn mehrere User angelegt werden, dann werden jeweils nur diese 3 Zeilen mit dem jeweiligen Usernamen angefügt (also maria mit dem neuen usernamen ersetzen).

Der User maria hat im Moment nur Lesezugriff, hier erstellen wir ein Verzeichnis zum upload (Lese und Schreibzugriff)

sudo mkdir /home/maria/upload
sudo chown maria:maria /home/maria/upload
sudo chmod 755 /home/maria/upload

Jetzt noch ssh neustarten um die Änderungen zu übernehmen und fertig.

sudo /etc/init.d/ssh restart

Wenn man sich z.B. mit Filezilla dort anmelden will muss man folgendes machen:

Server: Ip Adresse eingeben (z.B. 127.0.0.1)

Port: (freilassen, da durch Servertyp Port 22 festgelegt wird)

Servertyp: SFTP auswählen

Verbindungsart: Normal

Benutzer: (ihrem Usernamen einsetzen)

Passwort: (ihr Passwort eingeben)

Dann auf verbinden und es müsste gehen.

Alle Angaben ohne Gewähr !

17 Comments

  1. Holgi says:

    Das kann so nicht klappen.
    Auszug aus man sshd_config:
    “ Only a subset of keywords may be used on the lines following a Match keyword. Available keywords are AllowTcpForwarding, Banner, ForceCommand, GatewayPorts, GSSApiAuthentication,KbdInteractiveAuthentication, KerberosAuthentication, PasswordAuthentication, PermitOpen, RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset, X11Forwarding, and X11UseLocalHost.“
    Das bedeutet ‚ChrootDirectory /home/maria‘ funktioniert hier nicht…

    Gruß, Holgi

  2. ubuntu says:

    @holgi: geht doch super!

  3. blub says:

    funktioniert so weit ich weiß erst ab OpenSSH Version 4.9
    Also noch nicht unter Ubuntu 8.04…

    Ansonsten eine super Anleitung!

  4. blabla says:

    Klappt auch unter Debian wunderbar

  5. webmaster sagt says:

    Sehr gute Anleitung vielen Dank!

  6. Daniel says:

    Wenn ich mich von einem anderen Rechner im gleichen Netz z.B. mit WinSCP anmelden will, bekomme ich immer einen Fehler:

    Network error. Software caused connection abort
    Anmeldungsprotokoll (Siehe Sitzungsprotokoll für Details):
    Verwende Benutzername „morto“.

    Anmeldung fehlgeschlagen.

  7. Heinrich says:

    Kleiner Tipp zum Thema Sicherheit:

    Programme, die eine Gui haben (z.B. gedit) sollte man nicht per sudo aufrufen.

    Lieber gleich Konsoleneditoren per sudo nutzen (vi, nano…)

    Gruß, Heinrich

  8. Alex says:

    wieso nutzt du useradd?
    adduser würde dir arbeit sparen.

  9. Daniel says:

    Hab nun ein Paar fragen
    und zwar Kann man auch ohne den Upload Ordner auskommen und direkt auf dem Ordner Maria uploaden? Wenn ja wie?

    Kann man auch ne Gruppe erstellen, anstatt immer ein Match User zu erstellen, wenn ja wie?

    Da ich via Shel_exec einen User erstellen will, brauch ich unbedingt ne Gruppe.. ^^

  10. admin says:

    Hallo

    Sorry, mehr als dies habe ich damals nicht erarbeitet und seitdem auch nichts mehr verändert. Kann Dir da leider nicht weiterhelfen.
    Gruß

  11. Mr.Moon says:

    Hallo,

    funktionert super, vielen Dank für die Anleitung!

    Greets

  12. Kevin ossi says:

    bei mir steht nur

    Subsystem sftp /usr/lib/openssh/sftp-server

    benutze 12.04. Muss ich trotzdem „Subsystem sftp internal-sftp
    #Subsystem sftp /usr/lib/openssh/sftp-server“ eintragen? ne oder ist ja schon ein bisschen älter der Thread hier 🙂 Kann mir jemand kurz helfen?

    LG

  13. hape95 says:

    @Kevin ossi
    ja, die Zeile „Subsystem sftp internal-sftp“ musst du einfügen und die andere „deaktivierst“ du mit der Raute am Anfang der Zeile (so gen. auskommentieren in config-Datein).

    Hoffe die Antwort kam nicht zu spät.

  14. non says:

    hi @ll,

    hat bei mir erst auch nicht funktioniert, da ich während des ssh Servicerestarts eine Verbindung hatte.

    Also bei alleinigem Konsolenzugriff blieb mir nur ein

    $ sudo shutdown -r now

    um den Server rebooten zu lassen. Nun klappt’s!

    Danke für das Howto!

    greez,
    non

  15. non says:

    Nachtrag:

    $ sudo usermod -d /home/maria maria

    muss in

    $ sudo usermod -d /home/maria/ maria

    geändert werden, sonst erscheint ein:

    usermod: no changes

    ;-]

Trackbacks / Pingbacks

  1. Schneller Linux Fileserver / Datenserver im Eigenbau – Teil 2 Software – zazudesign – die Schwarzwald Werbeagentur sagt …

Schreibe einen Kommentar