In Teil 2 hatte ich ja beschrieben, wie man einen Benutzer inkl. /bin/bash als Shell anlegt, dessen Berechtigungen anpasst und dann via Public Key eine Authentifizierung einrichtet. Für reine sFTP-Konnektivität eigentlich blöd, weil der Benutzer dafür ja nur /bin/sftponly als Shell bekommen darf – doch wie passt man dann die Berechtigungen an?
Die Antwort: Gar nicht.
Beim Testen mit /bin/sftponly hatte ich keinen Erfolg und habe es auf die falschen Berechtigungen geschoben, der wahre Grund für das Fehlschlagen der Anmeldung war aber ein anderes Problem: Die von PuttyGen generierten Schlüssel, hier der Pulic Key, darf _NICHT_ via PuttyGen selbst als Datei abgespeichert werden!
Key aus PuttyGen kopieren
Vielmehr kopiert man den Key aus der PuttyGen Oberfläche heraus und fügt ihn in ein leeres Notepad-Dokument ein. Dieses speichert man dann lokal unter dem Dateinamen authorized_keys (OHNE Dateiendung!)ab.
Publlic Key abspeichern
Nun meldet man sich per sFTP am Server unter Eingabe des Passworts an und kopiert die Datei in den Unterordner ./ssh im Home-Verzeichnis des Benutzers.
authorized_keys kopieren
Dann wird die sFTP-Verbindung getrennt, WinSCP geschlossen und wieder neu gestartet (ohne Neustart von WinSCP hatte ich zumindest Probleme). In WinSCP hinterlegt man nun wie in Teil 2 beschrieben den Private Key für die Authentifizierung und verbindet sich erneut auf den Server, der Login erfolgt von nun ab ohne Eingabe eines Passworts.
Wenn wie in Teil 1 beschrieben die Berechtigungen entsprechend gesetzt wurden, hat der Benutzer nun nur schreibenden Zugriff auf sein Home-Verzeichnis und kann alles oberhalb nur lesen, wobei er sich nur innerhalb der cygwin Umgebung bewegen kann, Zugriff auf weitere Ordner des Dateisystems hat er nicht.
Dateizugriff mit WinSCP
Da aber genau das gewünscht nun häufig gewünscht ist, experimentiere ich gerade mit der Vergabe von Rechten auf Ordner und Unterordner außerhalb dieser vorgegebenen Struktur. Dies wird dann das Thema des nächsten Teils werden.
http://faq-o-matic.net/?p=1061