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 !
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
@holgi: geht doch super!
funktioniert so weit ich weiß erst ab OpenSSH Version 4.9
Also noch nicht unter Ubuntu 8.04…
Ansonsten eine super Anleitung!
Klappt auch unter Debian wunderbar
Sehr gute Anleitung vielen Dank!
Super ! Danke!
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.
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
wieso nutzt du useradd?
adduser würde dir arbeit sparen.
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.. ^^
Hallo
Sorry, mehr als dies habe ich damals nicht erarbeitet und seitdem auch nichts mehr verändert. Kann Dir da leider nicht weiterhelfen.
Gruß
Hallo,
funktionert super, vielen Dank für die Anleitung!
Greets
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
@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.
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
Nachtrag:
$ sudo usermod -d /home/maria maria
muss in
$ sudo usermod -d /home/maria/ maria
geändert werden, sonst erscheint ein:
usermod: no changes
;-]