PRF&PUB:20170621 How To kill An Inactive OR Idle SSH Sessions.md

@wcnnbdk1
This commit is contained in:
wxy 2017-07-06 09:06:10 +08:00
parent 9e9a5ff331
commit 59106f0d30

View File

@ -1,19 +1,15 @@
如何关闭一个不活动的或者空闲的 SSH 会话
如何关闭一个不活动的或者空闲的 SSH 会话
============================================================
作者 [MAGESH MARUTHAMUTHU][1] . 发布时间2017年6月21日 || 最后更新2017年6月21日
让我们来假设一下,当你通过 ssh 在服务器上工作时,由于网络、电源或者是本地 PC 重启等原因会导致你的会话连接断开。
让我们来想像一下,当你通过 ssh 在服务器上工作时,由于网络、电源或者是本地 PC 重启等原因导致你断开你的连接会话。
你可能会再次登录服务器继续工作也可能不会但是你始终会留下之前没有关闭的 ssh 会话。
你可能会再次登录服务器继续工作也可能不会,但是你始终会留下之前没有关闭的 ssh 会话。
如何关闭一个不活动的 ssh 会话?首先使用 `w` 命令来识别出不活动或者是空闲的 ssh 会话,接着使用 `pstree` 命令来获取空闲会话的 PID最后就是使用 `kill` 命令来关闭会话了。
建议阅读:[SSH 相关文章][2]
建议阅读:[MoshMobile Shell- 最好的SSH 远程连接替代选项][3]
#### 如何识别不活动的或者是空闲的 SSH 会话
### 如何识别不活动的或者是空闲的 SSH 会话
登录系统通过 `w` 命令来查看当前有多少用户登录着。如果你识别出了自己的会话连接就可以记下其它不活动或者是空闲的 ssh 会话去关闭。
@ -27,11 +23,11 @@ root pts/0 219.91.219.14 10:34 28.00s 0.00s 0.00s -bash
root pts/2 219.91.219.14 10:36 0.00s 0.00s 0.00s w
```
#### 如何获取 SSH 会话的 PID
### 如何获取 SSH 会话的 PID
为了关闭空闲的 ssh 会话,我们需要空闲会话进程的父进程的 `PID`(这里介绍另一个工具 pkill使用 pkill -t pts/0 -kill 就可以关闭会话, debian8下可用有些版本似乎需要更改-kill的位置我们可以执行 `pstree` 命令来查看包括了所有进程的树状图,以便获取父进程的 pid。
为了关闭空闲的 ssh 会话,我们需要空闲会话进程的父进程的 PID。我们可以执行 `pstree` 命令来查看包括了所有进程的树状图,以便获取父进程的 pid。
你会获得与下方示例中相似的输出。pstree 命令的输出会比这个大得多,为了更好的理解我删去了许多不相关的内容。
你会获得与下方示例中相似的输出。`pstree` 命令的输出会比这个多得多,为了更好的理解我删去了许多不相关的内容。
```
# pstree -p
@ -50,15 +46,14 @@ init(1)-+-abrtd(2131)
`-udevd(27282)
```
从上方的输出中,你可以看到 sshd 进程与分支的树形图。sshd 的主进程是 `sshd2023`,另两个分支分别为 `sshd10132``sshd10199`
从上方的输出中,你可以看到 `sshd` 进程与分支的树形图。`sshd` 的主进程是 `sshd2023`,另两个分支分别为 `sshd10132``sshd10199`
跟我在文章开始讲的相同,其中一个是我新的会话连接 `sshd10199` 它展示了我正在执行的 `pstree` 命令,因此空闲会话是另一个进程为 `sshd10132`
建议阅读:[如何通过标准的网页浏览器来接入 Secure Shell (SSH) 服务器][4]
- 建议阅读:[如何通过标准的网页浏览器来接入 Secure Shell (SSH) 服务器][4]
- 建议阅读:[PSSH - 在多台 Linux 服务器上并行的执行命令][5]
建议阅读:[PSSH - 在多台 Linux 服务器上并行的执行命令][5]
#### 如何关闭空闲 SSH 会话
### 如何关闭空闲 SSH 会话
我们已经获得了有关空闲会话的所有信息。那么,就让我们来使用 `kill` 命令来关闭空闲会话。请确认你将下方的 PID 替换成了你服务器上的空闲会话 PID。
@ -67,7 +62,9 @@ init(1)-+-abrtd(2131)
# kill -9 10132
```
#### 再次查看空闲会话是否已经被关闭
LCTT 译注:这里介绍另一个工具 `pkill`,使用 `pkill -t pts/0 -kill` 就可以关闭会话, debian 8 下可用,有些版本似乎需要更改 `-kill` 的位置)
### 再次查看空闲会话是否已经被关闭
再次使用 `w` 命令来查看空闲会话是否已经被关闭。没错,只有那个我自己的当前会话还在,因此那个空闲会话已经被关闭了。
@ -78,11 +75,10 @@ USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 219.91.219.14 10:36 0.00s 0.00s 0.00s w
```
建议阅读:[rtop - 一个好用的通过 SSH 来监控远程服务器的工具][6]
- 建议阅读:[rtop - 一个好用的通过 SSH 来监控远程服务器的工具][6]
- 建议阅读:[DSH - 同时在多台 Linux 服务器上执行命令][7]
建议阅读:[DSH - 同时在多台 Linux 服务器上执行命令][7]
#### 再次使用 pstree 命令检查
### 再次使用 pstree 命令检查
再次使用 `pstree` 命令确认。是的,只有那个我自己的 ssh 会话还在。
@ -107,17 +103,17 @@ init(1)-+-abrtd(2131)
via: http://www.2daygeek.com/kill-inactive-idle-ssh-sessions/
作者:[ Magesh Maruthamuthu][a]
作者:[Magesh Maruthamuthu][a]
译者:[wcnnbdk1](https://github.com/wcnnbdk1)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.2daygeek.com/author/magesh/
[1]:http://www.2daygeek.com/author/magesh/
[2]:http://www.2daygeek.com/category/ssh-tutorials/
[3]:http://www.2daygeek.com/install-mosh-shell-ssh-client-in-linux-to-connect-remote-system/
[3]:https://linux.cn/article-6262-1.html
[4]:http://www.2daygeek.com/shellinabox-web-based-ssh-terminal-to-access-remote-linux-servers/
[5]:http://www.2daygeek.com/pssh-parallel-ssh-run-execute-commands-on-multiple-linux-servers/
[6]:http://www.2daygeek.com/rtop-monitor-remote-linux-server-over-ssh/
[6]:https://linux.cn/article-8199-1.html
[7]:http://www.2daygeek.com/dsh-run-execute-shell-commands-on-multiple-linux-servers-at-once/