如何在 Linux 中注销 SSH 用户
如果您通过 SSH 登录到远程 Linux 系统,那么您只需要使用 exit 命令即可退出 SSH。
exit
没问题。但是如果你想要从 SSH 连接中注销其他用户,该怎么办?
在这个快速提示中,我将向您展示如何将任何用户踢出系统。
从 SSH 会话注销用户
首先,检查登录到 Linux 服务器的用户列表。有多种方法可以做到这一点。我将使用带有选项的 who 命令-u
。此选项显示用户登录 shell会话的进程 ID 。
who -u
以下是示例输出:
root@localhost:~# 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 会话,但现在您发现自己已登录系统两次。
在这种情况下,您可以关闭不再处于活动状态的会话。
您可以从命令输出中可见的登录时间确定要踢出哪个用户who
。别担心,最坏的情况是您将自己从当前会话中踢出。但之后您可以再次登录。
我希望这个快速提示能帮助您从 Linux 中的 SSH 会话中注销用户。欢迎提出您的问题和建议。