我有一个本地 unix 套接字通过 SSH 隧道连接到远程实例上的另一个 unix 套接字:
ssh -N -L $HOME/my.sock:/var/run/another.sock
但是,当我优雅地终止 ssh(即 ctrl+C 或 SIGTERM)时,$HOME/my.sock
仍然存在。看起来这没有正确清理。有这个选项/标志吗?
这是有问题的,因为如果我第二次运行该命令,它会由于现有的套接字文件而失败。(我也看不到会覆盖现有套接字文件的“重用”标志/选项。)而且我宁愿不添加rm -f $HOME/my.sock
.
简短的回答,您可以使用命令行标志来控制它:
-o 'StreamLocalBindUnlink=yes'
长答案:参见 ssh_config(5):