Ich möchte einigen vertrauenswürdigen Benutzern erlauben, Dateien per SCP auf meinen Server zu übertragen (an einen bestimmten Benutzer), aber ich möchte diesen Benutzern weder ein Zuhause noch eine SSH-Anmeldung geben.
Ich habe Probleme, die richtigen Benutzer-/Gruppeneinstellungen zu verstehen, die ich erstellen muss, damit dies möglich ist.
Ich werde ein Beispiel geben;
Haben:
MyUser@MyServer
MyUser
gehört zur GruppeMyGroup
- Die Startseite von MyUser wird beispielsweise sein:
/home/MyUser
SFTPGuy1@OtherBox1
SFTPGuy2@OtherBox2
Sie geben mir ihre id_dsa.pub
's und ich füge sie zu meinem hinzuauthorized_keys
Ich denke, ich würde dann auf meinem Server so etwas machen wie
useradd -d /home/MyUser -s /bin/false SFTPGuy1
(und das gleiche gilt für die anderen..)
Und zum Schluss useradd -G MyGroup SFTPGuy1
(und dann noch mal für den anderen)
sftp -o IdentityFile=id_dsa MyServer
Ich würde dann erwarten, dass die SFTPGuys zur Startseite von MyUser weitergeleitet werden können und auch dazu in der Lage sind …
Nun, das ist nicht der Fall ... SFTP fragt mich ständig nach einem Passwort.
Kann mir jemand sagen, was ich übersehe?
Tausend Dank,
F.
[BEARBEITEN:Messain StackOverflow wurde ich gefragt, ob die Datei authorized_keys für andere Benutzer (Mitglieder von MyGroup) lesbar sei. Das ist ein interessanter Punkt, das war meine Antwort:
Nun, das war es nicht (es war 700), aber dann habe ich die Berechtigungen des .ssh-Verzeichnisses und der Authentifizierungsdatei auf 750 geändert, allerdings immer noch ohne Wirkung. Ich denke, es ist erwähnenswert, dass mein Home-Verzeichnis ( /home/MyUser
) auch für die Gruppe lesbar ist; die meisten Verzeichnisse haben 750 und der spezifische Ordner, in dem sie Dateien ablegen, ist 770.
Was die Auth-Datei betrifft, gehe ich davon aus, dass die Authentifizierung vom lokalen Benutzer durchgeführt wird MyServer
, oder nicht? Wenn das so ist, verstehe ich nicht, warum andere Benutzer sie lesen müssen … na ja … ich frage mich nur. ]
Antwort1
Bevor Sie dies versuchen, lesen Sie bitte bis zum Ende.
Sie können tun, was Sie möchten, indem Sie zwei Benutzer erstellen, sie derselben Gruppe zuordnen und ihnen dasselbe Home-Verzeichnis zuweisen. Erstellen Sie dann die Datei ~/.ssh/authorized_keys im gemeinsam genutzten Home-Verzeichnis mit den darin enthaltenen Schlüsseln.
Die Konten müssen über eine Shell verfügen. Sperren Sie sie daher, usermod -L LOGIN
um eine interaktive Anmeldung zu verhindern.
Die Berechtigungen für das Verzeichnis ~/.ssh müssen g:rx und für ~/.ssh/authorized_keys g:r-- sein.
chmod g+rx ~/.ssh
chmod g+r ~/.ssh/authorized_keys
Dies verursacht dann Probleme mit sshd, da es erwartet, dass das Verzeichnis höchstens g:r-- und die Datei g:--- ist. Sie erhalten die Fehlermeldung
Authentication refused: bad ownership or modes for file /home/test/.ssh/authorized_keys
Damit dieses Schema funktioniert, müssen Sie nundie eingebauten Prüfungen von sshd durchbrechendurch Bearbeiten
/etc/sshd_config
und Festlegen StrictModes no
der Standardeinstellung StrictModes yes
. Starten Sie sshd neu, damit die Änderungen wirksam werden.
Es sollte wie gewünscht funktionieren. Leider haben Sie die Sicherheit von sshd aufgehoben und könnten zu einem späteren Zeitpunkt Änderungen vornehmen, die Ihr System völlig offen lassen.
Um dies sicherer zu machen, nehmen Sie keine der oben genannten Änderungen vor
Erstellen Sie zwei Benutzerkonten in derselben Gruppe und richten Sie deren ~/.ssh/authorised_keys ein. Erstellen Sie von jedem Home-Verzeichnis einen Link zu dem Ort, an dem Sie Inhalte ablegen möchten.
ln -s -n /path/to/stuff content
Sperren Sie die Berechtigungen für das Home-Verzeichnis, um zu verhindern, dass Benutzer darin schreiben.
Interaktive Anmeldung der Konten verhindern
usermod -L LOGIN
Ändern Sie die Berechtigungen für /path/to/stuff, um Gruppenzugriff zu ermöglichen.
Antwort2
Offenbar möchten Sie Zugriff auf eine Benutzer-ID gewähren, die als Ablage für Dateien fungiert. Sie können in der Datei mit den autorisierten Schlüsseln einschränken, was die Benutzer tun können.
Da Sie nur möchten, dass sie eine Verbindung mit dieser Benutzer-ID auf dem Server herstellen, können Sie ihnen eine .ssh/config-Datei bereitstellen, die sie direkt der richtigen Benutzer-ID zuordnet.
Antwort3
Die Antwort auf diese Frage -Wie kann ich ein Benutzerkonto erstellen, das nur Uploads per SFTP zulässt?- empfiehlt ein Paket namensAbonnieren– Ich habe es noch nie verwendet, aber es hört sich an, als ob es das tun könnte, was Sie wollen.
Antwort4
Ein Blick in die Logdateien kann hilfreich sein. Bitte geben Sie nach einem "fehlgeschlagenen" Login Folgendes ein
tail -n 50 /var/log/secure
und poste die Ausgabe