SSH 配置中的主机配置是否合并?

SSH 配置中的主机配置是否合并?

我的系统中有以下通用主机配置.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 是否也会使用条目中定义的ConnectTimeoutServerAliveInterval和设置?ServerAliveCountMaxHost *

答案1

对于每条指令,中第一次相关出现被ssh_config使用

引用手册页ssh_config

对于每个参数,将使用第一个获得的值。配置文件包含由Host规范分隔的部分,并且该部分仅适用于与规范中给出的模式之一匹配的主机。...

由于使用了每个参数的第一个获得的值,因此应在文件开头附近给出更多特定于主机的声明,并在末尾给出一般默认值。


因此使用下面的配置文件:

  • 对于所有主机,ServerAliveInterval 1始终使用,4并且7从未使用,甚至对于 也不使用work
  • ConnectTimeout2对于 来说work,对于其他主机来说,则是3
  • 对于所有主机,ServerAliveCountMax5work-特定值6从不使用,即使对于 也不使用work
ServerAliveInterval 1

Host work
  ConnectTimeout 2

Host *
  ConnectTimeout 3
  ServerAliveInterval 4
  ServerAliveCountMax 5

Host work
  ServerAliveCountMax 6
  ServerAliveInterval 7

相关内容