我建立的大多数 ssh 连接都受益于打开的 ControlMaster,例如我通过 VPN 建立的大多数连接。但是,也有一些没有,例如 github。所以我的 ~/.ssh/config 文件中有以下内容:
Host *
ControlMaster auto
ControlPath ~/.ssh/%r,%h,%p
ControlPersist 30m
Host github.com
ControlMaster no
ControlPath none
ControlPersist no
(除其他此类例外情况外)
然而,据我所知(pgrep -fla mux),mux 进程仍在创建中,这似乎为无法从 mux 中受益的连接带来了一些小麻烦。
有没有某种方法可以在我的配置文件中逐个主机地指定不创建主连接?
答案1
第一个匹配参数适用。切换各部分的顺序。
Host github.com other-exception.example.com
ControlPath none
Host *
ControlMaster auto
ControlPath ~/.ssh/%r,%h,%p
ControlPersist 30m
这在ssh_config
手册页,但不是很清楚:
对于每个参数,将使用第一个获得的值。配置文件包含由“主机”规范分隔的部分,并且该部分仅适用于与规范中给出的模式之一匹配的主机。