我一直遇到这个问题,当exit
我SSH 会话,它永远不会正确退出。我必须用 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 $pid
shell父进程(在服务器上)的进程 id 来找出它具有哪些端口打开连接。然后使用或并搜索在这些端口上打开连接的进程。$pid
sshd
lsof -i -n
netstat -pnt