有没有更直接的方式来退出一个OpenSSH的控制主进程并删除其套接字文件不是与程序的帮助lsof或fuser 与不知道目的地本的接受的答案建议主机(连接方式)的问题?我想到了这样的事情:
$ ssh -O exit -S ~/.ssh/7eb92b0827f3e8e1e8591fb3d1a5cd1b94b758cb.socket
Run Code Online (Sandbox Code Playgroud)
我之所以这么问,是因为我正在寻找一种可编写脚本的方式来在每次注销我的用户帐户时退出每个打开的控制主连接。不这样做会导致我的sytemd -Powered openSUSE的计算机等待两分钟超时,直到它强行终止依然敞开控制主站连接关闭最终供电。
不幸的是,OpenSSH 的客户端程序ssh需要目标主机和ControlPath文件名模式才能推断出套接字文件的实际文件路径。相反,我想到了通过程序-S ctl_path选项提供具体套接字文件的更直接方法。
在系统范围的OpenSSH客户端配置文件的全局部分,我配置了OpenSSH 的连接多路复用功能,如下所示:
ControlMaster auto
ControlPath ~/.ssh/%C.socket
ControlPersist 30m
Run Code Online (Sandbox Code Playgroud)
请注意,我想保持套接字文件的文件名模式,即哈希令牌字符串%l%h%p%r与令牌%C。
有任何想法吗?