使用 who 命令识别传出连接 (ssh)

use*_*976 3 ssh who

ssh 连接后,如果我who command在服务器上运行:我有这个响应:

olivia@olivia-pc:~$ who
olivia   :0           2014-09-08 11:40 (:0)
olivia   pts/0        2014-09-08 11:43 (:0)
olivia   pts/10       2014-09-08 13:54 (sim.local)
Run Code Online (Sandbox Code Playgroud)

因此很容易识别传入连接(第三行)。

如果我who command在客户端上运行:我有这个回应:

who
sim      :0           2014-09-04 16:30 (:0)
sim      pts/10       2014-09-08 13:49 (:0)
sim      pts/0        2014-09-08 13:46 (:0)
Run Code Online (Sandbox Code Playgroud)

所以我认为传出连接是第二行,因为它出现在我用 连接到服务器之后ssh,但我不明白为什么在我who关闭连接之后运行时它仍然存在(直到我离开终端)。

所以我的问题是:

1)它真的是代表传出连接的第二行吗?为什么?

2) 为什么在我离开终端之前它仍然可见,即使我关闭了连接?

3)如果传出连接是第二行,正如我所说的那样,服务器和客户端是否使用相同的伪终端号?

gar*_*Red 7

  1. 不必要。第 2 行或第 3 行是您用来运行命令的终端(例如xtermssh
  2. 因为它是终端,而不是ssh连接。
  3. 完全的巧合。如果您考虑使用 连接到服务器的 Windows 用户PuTTY,他们将没有本地pts,也没有who要运行的命令。

您可以尝试运行以下命令以查看正在运行ptsssh命令:

ps -AF | grep ssh
Run Code Online (Sandbox Code Playgroud)

您应该会看到pts针对ssh您用于连接的命令的列表。这是pts所述的xterm(或KDE /侏儒终端等)正在使用运行ssh

ssh 本身正在使用 TCP 连接到服务器,您可以使用以下命令查看:

ss | grep ssh
Run Code Online (Sandbox Code Playgroud)