authorized_keys für mehrere Chroot-Benutzer mit demselben Home-Verzeichnis

authorized_keys für mehrere Chroot-Benutzer mit demselben Home-Verzeichnis

Wir verwenden CentOS 6.9 mit OpenSSH_5.3p1 und haben Chroot-Konten für externe Benutzer mit demselben Home-Verzeichnis (eingebunden in htdocs) erstellt. Das Problem ist, dass die Datei .ssh/authorized_keys2dem ersten Benutzer gehört (und das funktioniert bereits). Wie kann ich es für einen anderen Benutzer zum Laufen bringen?

AuthorizedKeysFileIch habe versucht, eine in sshd_config mit mehreren Dateipfaden hinzuzufügen und habe den Fehler erhalten garbage at end of line.

Ich habe versucht , im Match-Block des zweiten Benutzers ein AuthorizedKeysFileIn hinzuzufügen und habe den Fehler erhalten .sshd_config'AuthorizedKeysFile' is not allowed within a Match block

Das Home-Verzeichnis kann ich nicht ändern, da sonst der Pfad vom tatsächlichen Pfad für die Entwicklung abweicht.

Irgendwelche Vorschläge, wie man das Problem lösen kann? Muss ich OpenSSH möglicherweise auf eine neuere Version aktualisieren, die mehrere Einträge unterstützt AuthorizedKeysFile(ich glaube, ich muss es mit rpm erstellen)? Was ist mit den Sicherheitsupdates danach?

Antwort1

Eine Möglichkeit besteht darin, Token zu verwenden, um jedem Benutzer eine einzigartige authorized_keysDatei zu geben.

Ausman sshd_config:

AuthorizedKeysFile

Gibt die Datei an, die die öffentlichen Schlüssel enthält, die zur Benutzerauthentifizierung verwendet werden können. Das Format wird im Abschnitt AUTHORIZED_KEYS-DATEIFORMAT von beschrieben sshd(8). AuthorizedKeysFile kann Token der Form enthalten %T, die beim Verbindungsaufbau ersetzt werden. Die folgenden Token sind definiert: %%wird durch ein Literal ersetzt %, %hwird durch das Home-Verzeichnis des zu authentifizierenden Benutzers ersetzt und%uwird durch den Benutzernamen des Benutzers ersetzt. Nach der Erweiterung AuthorizedKeysFilewird als absoluter Pfad oder relativ zum Home-Verzeichnis des Benutzers angesehen. Es können mehrere Dateien aufgelistet werden, getrennt durch Leerzeichen. Alternativ kann diese Option auf gesetzt werden, noneum die Überprüfung auf Benutzerschlüssel in Dateien zu überspringen. Der Standardwert ist .ssh/authorized_keys .ssh/authorized_keys2.

Hervorhebung von mir.

Sie können also Folgendes einstellen:

AuthorizedKeysFile    .ssh/%u_authorized_keys

Erstellen Sie dann fooeine authorized_keysDatei für den Benutzer .ssh/foo_authorized_keys.

Ein Hinweis zu Berechtigungen

AusMann sshd:

~/.ssh/authorized_keys
...
Wenn diese Datei, das ~/.sshVerzeichnis oder das Home-Verzeichnis des Benutzers für andere Benutzer beschreibbar sind, könnte die Datei von nicht autorisierten Benutzern geändert oder ersetzt werden. In diesem Fall lässt sshd die Verwendung nicht zu, es sei denn, die StrictModes Option wurde auf gesetzt no.

Sie müssen Ihre Schlüssel also möglicherweise außerhalb von platzieren .ssh/oder StrictModesauf setzen no. Wenn Sie auf setzen, StrictModesstellen noSie sicher, dass ein anderer Benutzer keinen authorized_keysfür jemand anderen erstellen oder die autorisierten Schlüssel des anderen Benutzers löschen kann. Am besten gehen Sie wahrscheinlich so vor:

AuthorizedKeysFile    .ssh_%u/authorized_keys

Erstellen Sie ein Verzeichnis .ssh_foo/für den Benutzer foo, der nur foolesen/schreiben kann.


Sie können wählen, ob Sie auch zulassen möchten, .ssh/authorized_keysindem Sie

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

Dadurch funktioniert die „normale“ Form authorized_keysweiterhin. Eine authorized_keysDatei muss Ihrem Benutzer gehören und über die richtigen Berechtigungen verfügen, sonst wird sie ignoriert. Bedenken Sie jedoch, dass es nicht möglich sein sollte, eine authorized_keysDatei für einen anderen Benutzer zu erstellen. Dies könnte einfach bedeuten, die Datei als Root zu bearbeiten, damit sie leer ist.

verwandte Informationen