Wie kann ich den OpenSSH SFTP Server unter Linux einrichten?

Ich möchte sftp-Server so konfigurieren, dass ein Verzeichnis freigegeben wird, weiß aber nicht, wie ich /etc/ssh/sshd_config ändern soll.

Meine Anforderungen sind: -

1) Login darf keine Zertifikate verwenden, nur Passwort (dh Autorisierung verwendet passwort methode)

2) Ich möchte mich mit user: ftp, password: foo und share directory /home/ftp anmelden.

3) ich habe eine Anwendung, die von Zeit zu Zeit braucht, um das herunterladen einer Datei vom server, ich brauche nicht, um sich mit einem vollen Betrieb Client.

Bisher habe ich die folgenden Zeilen zu /etc/ssh/sshd_config hinzugefügt:

Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
   ForceCommand internal-sftp
   ChrootDirectory /home/ftp

Alles andere wird kommentiert.

/home/ftp ist derzeit ein leeres Verzeichnis.

Der Zugriff funktioniert, wenn ich versuche, eine Datei mit Root-Anmeldeinformationen herunterzuladen, aber nicht, wenn ich FTP-Anmeldeinformationen verwende. Muss ich eine login-shell? Muss ich/home / ftp irgendwie füllen?

BEARBEITEN: Dies ist mein SSHD-Protokoll:

subsystem request for sftp
debug1: subsystem: exec() internal-sftp
debug1: Forced command (config) 'internal-sftp '
debug2: fd 3 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 17613
debug1: session_exit_message: session 0 channel 0 pid 17613
debug2: channel 0: request exit-status confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 9 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close
User child is on pid 17611
debug3: mm_request_receive entering

* Der client hängt hier (bis ein timeout Auftritt) *

Bitte beachten Sie erneut, dass die Datei korrekt heruntergeladen wird, wenn ich mich als "root" anmelde. Es wird auch korrekt heruntergeladen, wenn ich die letzten drei Zeilen der Konfigurationsdatei auskommentiere (dh die Zeile Match und die folgenden 2).

Author: Emiliano, 2011-09-30

1 answers

Sie müssen sicherstellen, dass /home/ftp im Besitz von root ist und diese Gruppe und andere keine Schreibberechtigungen haben, z. B. chmod 0755. Sie müssen Unterverzeichnisse für ftp hinzufügen, um Dateien hinzuzufügen.


Sie benötigen auch das Subsystem internal-sftp, andernfalls müssen Sie eine geeignete Umgebung in /home/ftp bereitstellen:

Subsystem sftp internal-sftp

Um alle Nicht-Passwort-Arten der Anmeldung zu verbieten, geben Sie

ChallengeResponseAuthentication no
GSSAPIAuthentication no
PubkeyAuthentication no

Diese sind standardmäßig aktiviert.

 7
Author: Daniel Beck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-09-30 16:32:47