Ich gründe eine kleine Hosting-Firma für ein paar Freunde und kleine Kunden, nichts Großes.
Ich möchte meinen "Kunden" das Recht geben, ihre Dateien auf dem Server zu verwalten. Ich hasse FTP, da es nicht sicher ist und meiner Meinung nach veraltet ist.
Daher möchte ich meinen Benutzern erlauben, eine Verbindung über SFTP herzustellen, ihnen jedoch nicht, eine Verbindung über SSH herzustellen. (Ich weiß, ich weiß, SFTP verwendet SSH). Aber ich habe mich nur gefragt, ist das möglich?
Ich müsste also keinen FTP-Dienst auf dem Server installieren und alles wäre fantastisch!
Es gibt nur eine Shell, die das macht. Es kann auch chroot .
quelle
Checkout rssh ist eine gefälschte Shell, die sftp erlaubt, aber ssh verweigert
Mehr über RSSH
http://www.pizzashack.org/rssh/
RPMs
http://pkgs.repoforge.org/rssh/
Sie können rssh so konfigurieren, dass verschiedene Verhaltensweisen wie sft, scp usw. zugelassen / abgelehnt werden.
quelle
Sie können / etc / passwd ändern und diesem Benutzer eine gefälschte Shell geben, damit er ssh nicht verwenden kann.
quelle
/bin/false
weder auf ssh noch auf sftp einzustellen, funktioniert dasIch benutze die Methode, die Benutzer-Shell wie erwähnt als / bin / false anzugeben. Sie müssen jedoch sicherstellen, dass sich / bin / shell in / etc / shells befindet. Dann klappt es ssh = no ftp = ok.
Ich benutze auch vsftpd und füge dieses
chroot_local_user = YES zu /etc/vsftpd/vsftpd.conf hinzu, so dass FTP-Benutzer kein anderes Datum als ihr eigenes sehen können.
Vorteil dieser einfachen Änderungen sind keine lästigen Konfigurationsänderungen für jeden Benutzer.
quelle
Vergiss nicht, die Zeile zu finden
UsePAM yes
und zu kommentieren:Ohne Deaktivierung würde Ihr SSH-Server beim erneuten Laden / Neustarten abstürzen. Da Sie keine ausgefallenen Funktionen von PAM benötigen, ist dies in Ordnung.
quelle
Ssh so zu konfigurieren, dass für einige ausgewählte Benutzer nur sftp aktiviert wird, ist eine gute Idee und funktioniert ordnungsgemäß, vorausgesetzt, Sie installieren entweder
scponly
oderrssh
.rssh
Funktioniert einwandfrei, es sei denn, Sie müssen Jail konfigurieren. In diesem Fall ist es verrückt, die Anweisungen in den CHROOT-Handbüchern zu befolgen, was dazu führt, dass große Teile der ausführbaren Dateien und der Bibliothek des Systems direkt unter "jedem Benutzer-Jail", einschließlich derrssh
Shell selbst , "kopiert" werden . Es ist eine platzraubende Methode.scponly
erfordert ein tiefes Verständnis der Konfiguration, was zu einem allgegenwärtigen Problem der Ablehnung der Anmeldung im Falle der Einrichtung eines Gefängnisses führt.Die einfache Möglichkeit, "FTP" -Funktionalitäten mit ordnungsgemäß funktionierendem Jail zuzulassen und SSL / TLS-Unterstützung für sichere Transaktionen und Anmeldungen zu verwenden, besteht in der Verwendung eines "alten, aber funktionsfähigen" VSFTPD, das schnell und sauber installiert wird und die gesamte erforderliche und dauerhafte Konfigurierbarkeit bietet aber nicht zuletzt: es funktioniert!
Maurizio.
quelle
Alle Antworten sind leider sehr irreführend: Bitte machen Sie folgendes:
Erstellen Sie zunächst einen SFTP-Benutzer und eine SFTP-Gruppe
Erstellen Sie ein separates Verzeichnis als Root für die SFTP-Dateien:
sudo mkdir -p /home/sftpdir
Starten Sie den sshd-Dienst neu und überprüfen Sie den Status
Sudo-Dienst sshd Neustart
service sshd status
Erstellen Sie eine Shell-Datei. Ausführung hinzufügen, um eine Benachrichtigungsnachricht zurückzugeben
sudo touch / bin / sftponly echo -e '#! / bin / sh \ necho "Dieses Konto ist nur auf den SFTP-Zugriff beschränkt."' | sudo tee -a / bin / sftponly
Erteilen Sie Ausführungsberechtigungen und hängen Sie sie an die Shells-Datei an
sudo chmod a + x / bin / sftponly echo "/ bin / sftponly" | sudo tee -a / etc / shells
endlich testen und du solltest keine verbindung herstellen können.
Eine Vorlage zur Verwendung des SFTP-Clients mit einem SSH-Schlüssel und grundlegender Ausführlichkeit:
sftp -v -oPort = $ RANDOM_PORT -i ~ / .ssh / $ SSH_KEY.pem sftpuser @ $ HOST
quelle