如果你通过 SSH 登录到远程 Linux 系统,你只需要使用 exit 命令退出 SSH。
exit
没关系。 但是,如果您想从 SSH 连接中注销其他用户怎么办?
在这个快速提示中,我将向您展示如何将任何用户踢出系统。
从 SSH 会话中注销用户
首先,检查 Linux 服务器的登录用户列表。 有多种方法可以做到这一点。 我将使用带有选项的 who 命令 -u
. 此选项显示用户登录 shell 会话的进程 ID。
who -u
这是一个示例输出:
[email protected]:~# who -u
abhishek pts/0 2021-04-05 09:25 00:01 31970 (223.180.180.107)
prakash pts/1 2021-04-05 09:26 . 32004 (223.180.180.107)
root pts/2 2021-04-05 09:26 . 32039 (223.180.180.107)
现在想象一下我想踢使用 prakash
从 SSH 会话。 它的shell会话的进程ID是32004。如果你杀死登录shell会话,用户将被断开。
为此,您可以使用 kill 命令发送 SIGHUP
信号。 这 信号用于报告 用户终端已断开连接。 它还有效地将会话中的所有进程与控制终端断开连接。
sudo kill -HUP 32004
当然,要执行这样的操作,您需要是 root 或 sudo 用户。
您应该知道和做一些事情。
在终止会话之前发送消息
在终止他/她的会话之前通知最终用户是个好主意。 您可以使用 write 命令以这种方式快速向用户发送消息:
echo "Your session will end in 2 minutes. Save your work!" | write prakash pts/2
如果 SIGNHUP 不起作用,则强制终止 SSH 会话
如果 SIGHUP 信号不起作用,则发送 SIGKILL 信号。
sudo kill -9 32004
如果用户有多个 SSH 会话,您还可以从选定会话中注销用户
如果同一用户从多个系统或终端登录,则只有您要终止的会话受到影响。 它不会将用户踢出所有会话。
当您的 SSH 会话由于某种原因(例如网络断开)而挂起时,就会出现这种情况。 您可以终止终端并从新终端打开另一个 SSH 会话,但现在您会看到自己两次登录系统。
在这种情况下,您可以 close 不应再处于活动状态的会话。
您可以根据登录的时间来确定要启动的用户,这在 who
命令。 别担心,最坏的情况是您从当前会话开始。 但随后您可以再次登录。
我希望这个快速提示可以帮助您在 Linux 中从 SSH 会话中注销用户。 欢迎您提出问题和建议。