为什么 SSH 在退出登录后仍等待转发的连接
当 SSH 会话看似不退出时,区分远程 shell 的结束与转发通道的完成。
远程 shell 和通过 SOCKS 转发的连接是同一条 SSH 传输上的不同通道。结束 shell 不一定结束使用动态转发的浏览器连接。OpenSSH 文档说明,注销时它会等待转发的连接或 X11 会话结束。
若要规整退出,请关闭使用该转发的操作,并让它们的通道自行结束。关闭浏览器窗口可能留下仍在运行的后台浏览器进程和连接,因此要先找出仍在占用监听者的进程。
在合适的交互式会话中,OpenSSH 默认的转义命令可以列出转发的连接或显式断开。它们是否可用取决于该会话及其转义配置;向后台 ssh -N 进程发送交互式转义文本并不是通用的关闭接口。
在中断传输之前,先确认它是否由一个连接共享 master 持有。其他会话可能依赖同一条连接。
ExitOnForwardFailure 控制的是建立所请求转发失败时的行为。它并不定义“在最后一次网站请求后退出”,也不定义“shell 结束时终止所有通道”。关闭时的选择是排空剩余工作,还是有意中断它。