Wie kann ich eine offene Remote-SSH-Sitzung abmelden?


48

Ich habe mich von einem öffentlichen Windows-Rechner (in unserem Labor) auf einen Linux-Rechner (Bash-Shell) gestürzt und vergessen, mich abzumelden. Ich sitze jetzt wieder in einem anderen Raum und bin zu faul, um zurückzugehen und diese Sitzung abzumelden. Ich kann jedoch von meinem aktuellen PC aus in den Linux-Rechner sshen. Kann ich die Abmeldung der anderen Sitzung von einer neuen SSH-Sitzung erzwingen?

Als ich in die Linux - Box von meinem aktuellen PC und Typ ssh - usersBefehl, kann ich sehen , dass ich immer noch dort angemeldet bin; Mein Name wird zweimal aufgeführt - einer für die aktuelle Sitzung und einer für die Sitzung vom Labor-PC.

Ich habe keine Root-Rechte auf dem genannten Computer, aber ich denke, das sollte keine Rolle spielen, da ich nur versuche, mich abzumelden.

Antworten:


73

Führen Sie ttyIhre aktuelle Sitzung aus, um herauszufinden, an welcher Sitzung Sie arbeiten, damit Sie sich nicht von der aktuellen Sitzung abmelden. Führen w Sie den Befehl aus , um aktuelle Benutzer und zugehörige Pseudoterminals (tty) anzuzeigen. Unter der Annahme , dass Sie zweimal angemeldet sind und es keine andere Benutzer auf Ihrem SSH - Server, wird Ihre vorherige SSH - Sitzung sein , auf pts/0und Strom auf pts/1. Um die Sitzung zu pts/0beenden, müssen Sie nur die Prozesse beenden, die ihr zugeordnet sind

pkill -9 -t pts/0 

Aus irgendeinem Grund pkill -9 pts/tty-numberhat nicht für mich gearbeitet; Dann fand ich die PID des Prozesses mit ps aux | grep amarund versuchte pkill -9 -P pidund es funktionierte. Vielen Dank!
Amarghosh

7
pkill -9 -t pts/tty-number. -tist der Schalter zu spezifizierentty
Casual Coder

Hoppla, irgendwie habe ich das -tin deiner Antwort verpasst, als ich es zuerst gelesen habe.
Amarghosh

+1, tolle Lösung. Ich habe gerade meinen Router zurückgesetzt, als ich SSHing auf einen Computer im selben Netzwerk ausgeführt habe, und dann festgestellt, dass diese Sitzung angemeldet blieb ... Das hat perfekt funktioniert.
Durchbruch

6
Fand diese Frage heute (und es funktioniert super, also danke!), Fand sie aber -9etwas rau. Ein einfaches -HUPgenügte mir.
Matijs

4

Angenommen, Sie haben keine anderen Prozesse, die Sie nicht bearbeiten möchten, können Sie einfach Folgendes tun:

$ ssh <systemname> pkill -u <yourlogin>

Und die andere Sitzung wird weggehen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.