SSH - kann den SFTP-Server nicht starten, wenn versucht wird, internen SFTP zu erzwingen


7

Ich habe Probleme, Benutzer dazu zu zwingen, nur SFTP zu verwenden, wenn eine Verbindung über SSH hergestellt wird.

Ich habe die folgenden Zeilen in meiner / etc / ssh / sshd_config:

Subsystem sftp /usr/libexec/openssh/sftp-server

Match user USERNAME
ForceCommand internal-sftp

Aber wenn ich versuche, eine Verbindung über SFTP herzustellen, erhalte ich den Fehler:

error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory
subsystem request for sftp failed, subsystem not found

Die Datei / usr / libexec / openssh / sftp-server existiert jedoch und scheint einwandfrei zu funktionieren. Wenn ich nicht versuche, die Verbindung als sftp zu erzwingen, kann ich ssh problemlos einspielen, sodass der ssh-Daemon die Dinge korrekt zu handhaben scheint, sftp jedoch nicht.

Hat jemand irgendwelche Vorschläge? Ich habe versucht, nach Antworten zu suchen, aber bei allen Lösungen, die ich gefunden habe, scheint es darum zu gehen, dass der SFTP-Server nicht am richtigen Ort ist. Für mich ist die Datei definitiv da.

Ich verwende CentOS 6 und OpenSSH 5.3p1. Vielen Dank für jede Hilfe.


Funktioniert SFTP, wenn der Befehl nicht erzwungen wird?
mgorven

Ja, SFTP funktioniert gut, wenn es nicht erzwungen wird. In diesem Fall erhalte ich die folgende Nachricht in meinem / var / log / Secure, wenn eine Verbindung über SFTP hergestellt wird: sshd [3569]: Subsystemanforderung für SFTP
Jai Redden

In meinem Fall war bei einer minimalen Installation von CentOS 6 der sshd_configStandardpfad falsch - er musste aktualisiert werden /usr/libexec/openssh/sftp-server(finden Sie heraus, über wo Sie ihn installiert haben find / -name "sftp-server"). Dies führte dazu, dass Ansible Warnungen ausgab, [WARNING]: sftp transfer mechanism failed on [server]bis ich es behoben hatte.
Geerlingguy

Antworten:


10

Verwenden Sie "ChrootDirectory"? Das würde "Datei nicht gefunden" erklären, wenn Ihr "/ usr / libexec / openssh / sftp-Server" existiert.

Sie sollten stattdessen "Subsystem sftp internal-sftp" verwenden (oder Chroot aufgeben)


1
Das sollte seinSubsystem sftp internal-sftp
xebeche

tnx @xebeche, ich habe es bearbeitet
Matija Nalis

4
Beachten Sie, dass die Datei sshd_config unter Ubuntu 14 nicht mit dem Dateisystem synchronisiert /usr/libexec/openssh/sftp-serverist /usr/lib/openssh/sftp-server. Der Standardwert ist jedoch die tatsächliche Datei .
am
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.