Nach vier Jahren hat diese Antwort ein Update verdient. Während ich authorized_keysmich ursprünglich selbst verwendet habe und es wahrscheinlich in einigen ausgewählten Fällen immer noch verwenden würde, können Sie auch die sshd_configKonfigurationsdatei des zentralen Servers verwenden.
sshd_config
Sie können (für Ihren speziellen Anwendungsfall) bezeichnen eine Gruppe, wie proxy-onlyoder Matcheinzelne Benutzer. In sshd_config. Dies erfolgt nach den globalen Einstellungen und widerruft, wiederholt oder verfeinert einige der in den globalen Einstellungen angegebenen Einstellungen.
Hinweis: Einige der in verwendeten Syntax / Anweisungen sshd_config(5)sind auf der manSeite für dokumentiert ssh_config(5). Lesen Sie insbesondere den Abschnitt MUSTER von ssh_config(5).
Für eine Gruppe bedeutet dies, dass Ihr MatchBlock folgendermaßen beginnen würde:
Match group proxy-only
Sie können Matchdie folgenden Kriterien: User, Group, Host, LocalAddress, LocalPortund Address. Um mehreren Kriterien zu entsprechen, trennen Sie einfach die Kriterien-Muster-Paare ( group proxy-onlyoben) durch Kommas .
Innerhalb eines solchen Blocks, der der Kürze halber traditionell entsprechend eingerückt ist (aber nicht muss), können Sie dann die Einstellungen deklarieren, die Sie für die Benutzergruppe anwenden möchten, ohne jede einzelne authorized_keysDatei für Mitglieder dieser Gruppe bearbeiten zu müssen .
Die no-ptyEinstellung von authorized_keyswürde durch eine PermitTTY noEinstellung gespiegelt und command="/sbin/nologin"würde werden ForceCommand /sbin/nologin.
Darüber hinaus können Sie weitere Einstellungen vornehmen, um die Paranoia eines Administrators zu befriedigen, z. B. chrootden Benutzer in seinen Home-Ordner zu verschieben und am Ende Folgendes zu erhalten:
Match group proxy-only
PermitTTY no
ForceCommand /sbin/nologin
ChrootDirectory %h
# Optionally enable these by un-commenting the needed line
# AllowTcpForwarding no
# GatewayPorts yes
# KbdInteractiveAuthentication no
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
(Überprüfen Sie selbst, ob Sie die auskommentierten Zeilen benötigen oder möchten, und kommentieren Sie sie nach Bedarf aus.)
Das %hist ein Zeichen , das durch den Benutzers des Home - Verzeichnis ersetzt wird ( %uwürde die Benutzername und ergibt %%ein Prozentzeichen). Ich habe es ChrootDirectorybesonders nützlich gefunden, meine sftp-onlyBenutzer einzuschränken :
Match group sftp-only
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication no
Bitte beachten Sie, dass in einem Block nur bestimmte Anweisungen verwendet werden können Match. Konsultieren Sie die manSeite sshd_config(5)für Details (Suche nach Match).
autorisierte_Tasten
NB: Der Teil unter dieser Bemerkung war meine ursprüngliche Antwort. In der Zwischenzeit - aber es hängt auch von den Merkmalen Ihrer genauen sshdVersion ab - würde ich mich in den meisten Fällen für die oben beschriebene Methode entscheiden.
Ja, Sie können so feinkörnig wie Sie öffentliche Schlüssel zuweisen können. Zusätzlich zu Nologin, wie von Ajdecon empfohlen, würde ich vorschlagen, Folgendes vor dem Schlüsseleintrag in zu setzen authorized_keys:
no-pty ssh-rsa ...
Das no pty teilt der Serverseite mit, dass diesem Schlüssel kein Pseudo-Terminal zugewiesen werden soll.
Sie können auch die Ausführung von Nologin für einen bestimmten Schlüssel erzwingen, indem Sie Folgendes voranstellen:
command="/sbin/nologin",no-pty ssh-rsa ...
no-ptydass der Benutzer des Schlüssels allein nicht daran gehindert wird, Befehle auszuführen. Siehe superuser.com/q/1230979/195460 .