
Mein Client benötigte einen SFTP-Server zum Teilen von Dateien, also habe ich einen SFTP-Server auf einer Amazon EC2-Ubuntu-Maschine erstellt und verschiedene Benutzer hinzugefügt.
Jetzt müssen Benutzer, wenn sie sich über WinSCP oder einen anderen Client beim SFTP-Server anmelden, nur ihre eigenen Ordner im Home-Verzeichnis sehen können. Die anderen Ordner dürfen für sie nicht sichtbar sein. Außerdem dürfen sie in ihren Home-Verzeichnissen keine Dateien oder Ordner sehen, die mit einem Punkt (.) beginnen.
Ist das möglich? Siehe z. B. den Screenshot-Link unten. Ich möchte nur, dass mein Client den Transcript-Ordner sieht/darauf zugreift, sonst nichts.
Antwort1
Vielen Dank an alle, dieser Link hat mir endlich geholfen, meine Aufgabe zu erfüllen.http://rmtheis.wordpress.com/2011/07/03/setting-up-an-sftp-site-on-amazon-web-services-ec2-creating-an-account-to-share-with-a-third-party-and-restricting-that-account-to-allow-only-sftp/
Dieses besteht aus drei Teilen:
- Einrichten einer SFTP-Site auf EC2
- Erstellen eines neuen Benutzerkontos
- Konfigurieren des neuen Benutzerkontos für schreibgeschützten FTP-Zugriff ohne SSH-Berechtigungen
Dies ist für die Übertragung von Dateien an und von vertrauenswürdigen Benutzern vorgesehen. Ich verwende dies als angemessene Lösung, um gelegentlich sehr große Dateien an Clients zu senden, wobei ich eine für diese Aufgabe vorgesehene EC2-Instanz verwende. Nachdem die Übertragung abgeschlossen ist, fahre ich die Instanz herunter oder lösche sie.
Richten Sie einen Server mit Amazon Web Services EC2 ein und wählen Sie ein Ubuntu Amazon Machine Image (AMI). (Sie finden ein AMI unter http://cloud.ubuntu.com/ami/. Sie können eine auswählen, die für die kostenlose Stufe infrage kommt, wie etwa ami-1aad5273)
SSH auf den Server:
ssh -i keyfile.pem [email protected]
Installieren Sie vsftpd:
sudo apt-get install vsftpd
Einen neuen Benutzer erstellen:
sudo adduser newusername
Generieren Sie mithilfe der AWS Management Console ein neues Schlüsselpaar für den Drittanbieterbenutzer.
Importieren Sie mit Puttygen den neuen Schlüssel (keyname.pem) und kopieren Sie seinen öffentlichen Schlüssel.
Erstellen Sie auf dem Server das .ssh-Verzeichnis für den neuen Benutzer:
sudo mkdir /home/newusername/.ssh
Fügen Sie den öffentlichen Schlüssel ein
/home/newusername/.ssh/authorized_keys
.Berechtigungen festlegen:
sudo chmod 700 /home/newusername/.ssh
sudo chmod 600 /home/newusername/.ssh/authorized_keys
sudo chown -R newusername:newusername /home/newusername/.ssh
Testen Sie die SFTP-Anmeldung des neuen Benutzers von Ihrem lokalen Computer aus:
sftp -o IdentityFile=newkeypair1.pem
[email protected]
Erstellen Sie eine neue Gruppe für Benutzer, die ausschließlich SFTP verwenden dürfen:
sudo groupadd sftponly
sudo adduser newusername sftponly
Bearbeiten
/etc/ssh/sshd_config
und ändern Sie die Subsystemzeile wie folgt:
Subsystem sftp internal-sftp
und fügen Sie diese Zeilen am Ende hinzu
/etc/ssh/sshd_config
:
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Legen Sie Berechtigungen fest, ohne die für die schlüsselbasierte Authentifizierung von EC2 erforderlichen Dateien zu überschreiben:
sudo chown root:root /home/newusername
sudo chown -R newusername:newusername /home/newusername/.ssh
sudo /etc/init.d/ssh restart
Jetzt kann der neue Benutzer eine Verbindung per SFTP herstellen, aber nicht per SSH. Platzieren Sie die Dateien, die Sie freigeben möchten
/home/newusername
, in und teilen Sie dem Benutzer den Schlüssel mit.