Wie kann ssh die Remote-Port-Weiterleitung einrichten, aber keine Befehle ausführen?

8

Wie kann ein SSH-Befehl eingerichtet werden, um die Portweiterleitung zu ermöglichen, aber keine Befehle auszuführen?

Ich weiß, dass die SSH-Anmeldung -N verwenden kann, um die Ausführung von Befehlen zu stoppen, aber kann die SSH-Konfigurationsdatei so eingerichtet werden, dass sie nicht zulässig ist?

Das Einschränken des Shell-Typs und des Pfads unter Linux ist eine Option. Kann dies jedoch in der SSH-Konfiguration selbst erfolgen?

vfclists
quelle

Antworten:

6

Anschauen man sshdund suchenAUTHORIZED_KEYS FILE FORMAT

Sie möchten ein öffentliches / privates Schlüsselpaar erstellen und den öffentlichen Schlüssel ~/.ssh/authorized_keyswie gewohnt in die Datei einfügen. Bearbeiten Sie dann die authorized_keysDatei, um die Zeichenfolge hinzuzufügen:

command = "/ bin / false", Weiterleitung ohne Agenten, ohne Pty, ohne Benutzer-RC, ohne X11-Weiterleitung, allowopen = "127.0.0.1:80"

Es wird am Ende so aussehen:

command="/bin/false",no-agent-forwarding,no-pty,no-user-rc,no-X11-forwarding,permitopen="127.0.0.1:80" ssh-dss AAAAC3...51R==

Sie möchten das Argument in "allowopen" ändern und möglicherweise einige der anderen Einstellungen ändern, aber ich denke, das ist es im Grunde.

Slartibartfast
quelle
Ich denke, das allowopen setzt die lokalen Ports, die vom Ende des Benutzers weitergeleitet werden können. Beeinflusst es die Weiterleitung von Remote-Ports? Gilt das nur für diesen Schlüssel?
vfclists
Die Datei "authorized_keys" befindet sich auf der Remote-Seite (SSH-Server). Es zeigt Host + Port-Kombinationen an, zu denen Clients mit dem autorisierten Schlüssel über den Server eine Verbindung herstellen dürfen. Der Port, den Sie auf der lokalen Seite (SSH-Client) verwenden, ist irrelevant (und wird wahrscheinlich nicht an den Server kommuniziert), sodass er weggelassen wird. Ja, es gilt nur für diesen Schlüssel (weshalb er in derselben Zeile wie der öffentliche Schlüssel aufgeführt ist, der dem zulässigen Schlüssel entspricht)
Slartibartfast
1
Hier gibt es einen Tippfehler: no-usr-rcsollte sein no-user-rc.
Xebeche
2
Die Antwort enthält immer noch eine Instanz von no-usr-rc - nicht sicher, ob Sie eine verpasst haben oder ob die Bearbeitung nicht verarbeitet wurde?
Dave Gregory
1
Deshalb hasse ich die 6-Zeichen-Limit-Regel. Ich habe eine halbe Stunde lang versucht herauszufinden, was los ist, als ich die mit dem Tippfehler kopiert habe, nur um herauszufinden, dass niemand außer dem Besitzer diese Antwort korrigieren kann.
zypA13510