Bitten Sie den lokalen Benutzer um Bestätigung, bevor Sie sich über SSH anmelden

7

Ich möchte wissen, ob es eine Möglichkeit gibt, den lokalen Benutzer (über die GUI angemeldet) zu bitten, andere Authentifizierungsversuche zu bestätigen / abzulehnen, z. B. jemanden, der versucht, sich über SSH anzumelden.

Das Szenario ist das folgende: Ich möchte möglicherweise meinen SSH-Schlüssel auf dem Computer eines Benutzers belassen, um ihn zu debuggen oder ihm zu helfen, falls etwas schief gehen sollte. Gleichzeitig möchte ich, dass er die Kontrolle behält, sodass weder ich noch jemand gestohlen hat Mein SSH-Schlüssel kann sich ohne Bestätigung des Benutzers anmelden (der Benutzer würde erwarten, dass ich ihm vorher mitteile, dass ich mich anmelden würde. Wenn dies nicht der Fall ist, lehnen sie die Verbindung ab).

Ist das möglich? Auf dem betreffenden Computer wird Ubuntu 16.10 mit der Standard-Unity-Desktopumgebung ausgeführt.

André Borie
quelle
Schauen Sie sich die Manpage von sshdan SSHRC. Vielleicht könnte dies ein guter Weg sein.
Ridgy

Antworten:

1

Ja. Dies sollte mit einem benutzerdefinierten PAM-Modul möglich sein /etc/pam.d/sshd, das die Aufforderung für den Benutzer ausgibt, beispielsweise Zenity zu verwenden. Diese Qualitätssicherung ist jedoch kein Format, um Ihnen ein ganzes Skript zu schreiben.

Jakuje
quelle
Klar, ich bitte definitiv niemanden, ein ganzes Modul zu schreiben. Ich habe mich nur gefragt, ob es einen einfacheren Weg gibt oder ob es bereits gemacht wurde.
André Borie
Die Grundidee, was benötigt wird, ist in der Antwort und wenn etwas Ähnliches bereits existiert, wäre es in den Softwareempfehlungen angemessener .
Jakuje
0

Dies ist eine dumme Anfrage, aber man könnte einen Befehl verwenden, der auf einen Shell-Wrapper verweist, der beispielsweise das Vorhandensein einer Datei prüft, wenn die Datei auf dem Server vorhanden ist, als die Sitzung nicht mit 'exit' endet und die Shell mit angegeben zulässt SSH_ORIGINAL_COMMAND.

Aber trotzdem ... man kann zwei Benutzerkonten mit derselben UID, aber unterschiedlichem Benutzernamen erstellen. Für einen echten Benutzer würde also alles wie gewohnt funktionieren, für einen unterstützenden Mann hätte er / sbin / nologin als Standard-Shell auf dem Remote-Computer. Wenn sich ein Support-Mitarbeiter anmelden muss, ändert der Administrator des Remote-Computers seine Shell in z. Bash und die Sitzung würde funktionieren. Dann kann der Administrator den unterstützenden Mann rausschmeißen und seine Shell wieder in / sbin / nologin ändern.

Jiri B.
quelle
Beide Konten mit derselben UID können natürlich unterschiedliche SSH-Schlüssel verwenden. Und nur ein lokales Konto könnte zum Beispiel sudo zum Ausführen verwenden chsh.
Jiri B