Ich möchte den SFTP-Server so konfigurieren, dass er ein Verzeichnis freigibt, weiß aber nicht, wie ich ihn ändern soll /etc/ssh/sshd_config
.
Meine Anforderungen sind:
1) Bei der Anmeldung werden keine Zertifikate verwendet, sondern nur das Passwort (dh die Autorisierung verwendet die Passwortmethode).
2) Ich möchte mich mit Benutzer: ftp, Passwort: foo anmelden und Verzeichnis / home / ftp freigeben.
3) Ich habe eine Anwendung, die von Zeit zu Zeit eine Datei vom Server herunterladen muss. Ich muss mich nicht mit einem voll funktionsfähigen Client anmelden.
Bisher habe ich / etc / ssh / sshd_config die folgenden Zeilen 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 einrichten? Muss ich / home / ftp irgendwie füllen?
EDIT: 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 eine Zeitüberschreitung 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 Match
Zeile und die folgenden 2).
ssh
oder PuTTY unter Windows? Welche Version von OpenSSH verwenden Sie?Antworten:
Sie müssen sicherstellen, dass diese Gruppe
/home/ftp
gehörtroot
und dass diese Gruppe und andere keine Schreibberechtigungen haben, zchmod 0755
. Sie müssen Unterverzeichnisseftp
hinzufügen, um Dateien hinzuzufügen.Sie benötigen auch das
internal-sftp
Subsystem, andernfalls müssen Sie eine geeignetechroot
Umgebung bereitstellen in/home/ftp
:Geben Sie ein, um alle Anmeldedaten ohne Kennwort zu verbieten
Diese sind standardmäßig aktiviert.
quelle
/var/log/secure
, zumindest bekomme ich sie dort auf mein System./var/log/messages
. Ich habe folgendes:Failed none for ftp [...]
gefolgt vonAccepted password for ftp [...]
undUser child is on pid 7658
. Der Kunde hängt und läuft dann aussshd_config
war in Ordnung.