ssh 会话永远不会干净地退出

ssh 会话永远不会干净地退出

我一直遇到这个问题,当exitSSH 会话,它永远不会正确退出。我必须用 Ctrl-C 杀死它。

下面的示例会话:

[stefan@desktop ~]$ ssh [email protected]
[stefan@laptop ~]$ # do some stuff
[stefan@laptop ~]$ exit
logout
^CKilled by signal 2.
[stefan@desktop ~]$

发生这种情况有原因吗? (某些正在运行的进程可能会阻止干净退出)。我该如何解决它?

答案1

来自ssh 手册页:

当远程计算机上的命令或 shell 退出并且所有 X11 和 TCP 连接都已关闭时,会话终止。

您已经终止了 shell,但看起来某些应用程序仍然通过转发端口(代理、X11 或使用-D-L-R等效项设置的转发~/.ssh/config)打开了连接。

如果您不知道哪个程序正在使用转发,请使用ssh 客户端(在客户端上)的进程 id 或lsof -p $pidshell父进程(在服务器上)的进程 id 来找出它具有哪些端口打开连接。然后使用或并搜索在这些端口上打开连接的进程。$pidsshdlsof -i -nnetstat -pnt

相关内容