![SSH 配置中的主机配置是否合并?](https://linux22.com/image/1596464/SSH%20%E9%85%8D%E7%BD%AE%E4%B8%AD%E7%9A%84%E4%B8%BB%E6%9C%BA%E9%85%8D%E7%BD%AE%E6%98%AF%E5%90%A6%E5%90%88%E5%B9%B6%EF%BC%9F.png)
我的系统中有以下通用主机配置.ssh/ssh_config
:
Host *
ConnectTimeout 5
ServerAliveInterval 5
ServerAliveCountMax 12
我也有一些特定的配置。例如以下别名:
Host work-server-1
Hostname a.b.c.d
Host work-server-2
Hostname i.j.k.l
现在,我的问题是:登录主机时work-server-1
,SSH 是否也会使用条目中定义的ConnectTimeout
、ServerAliveInterval
和设置?ServerAliveCountMax
Host *
答案1
对于每条指令,中第一次相关出现被ssh_config
使用。
对于每个参数,将使用第一个获得的值。配置文件包含由
Host
规范分隔的部分,并且该部分仅适用于与规范中给出的模式之一匹配的主机。...由于使用了每个参数的第一个获得的值,因此应在文件开头附近给出更多特定于主机的声明,并在末尾给出一般默认值。
因此使用下面的配置文件:
- 对于所有主机,
ServerAliveInterval 1
始终使用,4
并且7
从未使用,甚至对于 也不使用work
。 ConnectTimeout
2
对于 来说work
,对于其他主机来说,则是3
。- 对于所有主机,
ServerAliveCountMax
是5
,work
-特定值6
从不使用,即使对于 也不使用work
。
ServerAliveInterval 1
Host work
ConnectTimeout 2
Host *
ConnectTimeout 3
ServerAliveInterval 4
ServerAliveCountMax 5
Host work
ServerAliveCountMax 6
ServerAliveInterval 7