名称
ssh_config
— OpenSSH 客户端配置文件
描述
ssh(1) 获取配置数据 按以下顺序来自以下来源:
- 命令行选项
- 用户的配置文件 ( ~/.ssh/config )
- 系统范围的配置文件 ( /etc/ssh/ssh_config )
对于每个参数,将使用第一个获得的值。 这 配置文件包含由分隔的部分 Host
规格,该部分仅 适用于与规范中给出的模式之一匹配的主机。 匹配的主机名通常是命令行上给出的名称(请参阅 CanonicalizeHostname
例外选项)。
由于使用了每个参数的第一个获得的值,因此更多 应在文件开头附近给出主机特定的声明, 和最后的一般默认值。
该文件包含关键字参数对,每行一个。 线 从...开始 ' #
' 和空行是 解释为注释。 参数可以选择性地包含在 double 中 引号 (") 以表示包含空格的参数。 配置选项可以用空格或可选空格分隔 而正是一个' =
'; 后一种格式 在指定时避免需要引用空格很有用 配置选项使用 ssh
, scp
, 和 sftp
-o
选项。
可能的关键字及其含义如下(注意 关键字不区分大小写,参数区分大小写):
限制以下声明(直到下一个 Host
要么 Match
关键字)到 仅适用于那些与后面给出的模式之一匹配的主机 关键词。 如果提供了多个模式,则应将它们隔开 空白。 一个 ' *
' 作为一个 模式可用于为所有主机提供全局默认值。 主持人是 通常 的 主机名 是命令中给出 参数 行(见 CanonicalizeHostname
关键字为 例外)。
模式条目可以通过在它前面加上前缀来否定 感叹号 ('!')。 如果匹配一个否定条目, 那么 Host
条目被忽略,无论 该行上的任何其他模式是否匹配。 否定匹配是 因此可用于为通配符匹配提供例外。
查看 模式 了解更多 关于图案的信息。
限制以下声明(直到下一个 Host
要么 Match
关键字)到 仅在满足以下条件时使用 Match
关键字满足。 匹配条件是 使用一个或多个条件或单个令牌指定 all
始终匹配。 可用标准 关键词是: canonical
, final
, exec
, host
, originalhost
, user
, 和 localuser
. 这 all
标准必须单独或立即出现 后 canonical
要么 final
. 其他标准可以任意组合。 所有标准,但 all
, canonical
, 和 final
需要论证。 标准可能被否定 在前面加上感叹号 ('!')。
这 canonical
仅关键字匹配 当在主机名之后重新解析配置文件时 规范化(见 CanonicalizeHostname
选项)。 这可能有助于指定适用的条件 仅规范主机名。
这 final
关键字要求 配置被重新解析(无论是否 CanonicalizeHostname
已启用),并匹配 仅在此最后通过期间。 如果 CanonicalizeHostname
已启用,然后 canonical
和 final
在同一个传球中匹配。
这 exec
关键字执行 用户shell下的指定命令。 如果命令返回零 退出状态然后条件被认为是真的。 命令包含 必须引用空格字符。 论据 exec
接受中描述的令牌 令牌 部分。
其他关键字的条件必须是单个条目或 逗号分隔的列表,可以使用通配符和否定运算符 在 描述 模式 部分中 。 的标准 host
关键字匹配 针对目标主机名,在任何替换之后 Hostname
要么 CanonicalizeHostname
选项。 这 originalhost
关键字匹配 在命令行中指定的主机名。 这 user
关键字与目标用户名匹配 在远程主机上。 这 localuser
关键词 与运行的本地用户的名称匹配 ssh(1) (这个关键字可能在 全系统 ssh_config
文件)。
指定是否应自动将密钥添加到正在运行的 ssh-agent(1) 。 如果设置了这个选项 到 yes
并且从文件加载密钥,密钥 并将其密码添加到具有默认生命周期的代理中,就好像 通过 ssh-add(1) 。 如果设置了这个选项 到 ask
, SSH(1) 将需要使用确认 SSH_ASKPASS
添加密钥之前的程序(请参阅 ssh-add(1) 了解详情)。 如果这 选项设置为 confirm
, 每次使用密钥必须 被确认,好像 -c
选项被指定为 ssh-add(1) 。 如果此选项设置为 no
,不会向代理添加任何密钥。 交替, 可以使用描述的格式将此选项指定为时间间隔 在 时间格式 部分 sshd_config(5) 来指定 密钥在 的生命周期 ssh-agent(1) 中 , 之后它将自动删除。 论点必须是 no
(默认), yes
, confirm
(可选后跟一个时间间隔), ask
或时间间隔。
指定连接时要使用的地址系列。 有效的参数是 any
(默认), inet
(仅使用 IPv4),或 inet6
(仅使用 IPv6)。
如果设置为 yes
, 用户交互如密码 提示和主机密钥确认请求将被禁用。 这个选项 在脚本和其他没有用户的批处理作业中很有用 与 交互 ssh(1) 。 论点必须是 yes
要么 no
(这 默认)。
使用本地机器上的指定地址作为源地址 连接。 仅对具有多个地址的系统有用。
使用本地机器上指定接口的地址作为 连接的源地址。
什么时候 CanonicalizeHostname
已启用,此选项 指定在其中搜索指定的域后缀列表 目标主机。
指定主机名规范化时是否因错误而失败 失败。 默认情况下, yes
, 将尝试查找 使用系统解析器搜索规则的非限定主机名。 一个值 的 no
将造成 ssh(1) 立即失败,如果 CanonicalizeHostname
已启用并且目标 在指定的任何域中都找不到主机名 CanonicalDomains
.
控制是否执行显式主机名规范化。 这 默认, no
, 不进行任何名称重写 并让系统解析器处理所有主机名查找。 如果设置为 yes
然后,对于不使用 ProxyCommand
要么 ProxyJump
, ssh(1) 将尝试规范化 使用命令行在命令行上指定的主机名 CanonicalDomains
后缀和 CanonicalizePermittedCNAMEs
规则。 如果 CanonicalizeHostname
被设置为 always
,然后规范化应用于 代理连接也是如此。
如果启用此选项,则配置文件为 使用新的目标名称再次处理以获取任何新的 匹配中的配置 Host
和 Match
节。
指定主机名之前的最大点字符数 规范化被禁用。 默认值 1 允许单个点(即 主机名.子域)。
Specifies rules to determine whether CNAMEs should be followed when canonicalizing hostnames. The rules consist of one or more arguments of source_domain_list:target_domain_list, where source_domain_list is a pattern-list of domains that may follow CNAMEs in canonicalization, and target_domain_list is a pattern-list of domains that they may resolve to.
For example, "*.a.example.com:*.b.example.com,*.c.example.com" will allow hostnames matching "*.a.example.com" to be canonicalized to names in the "*.b.example.com" or "*.c.example.com" domains.
Specifies which algorithms are allowed for signing of certificates by certificate authorities (CAs). The default is:
ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com, rsa-sha2-512,rsa-sha2-256
ssh(1) will not accept host certificates signed using algorithms other than those specified.
指定从中读取用户证书的文件。 一种 必须单独提供相应的私钥才能使用 证书要么来自 IdentityFile
指示 要么 -i
标志到 ssh(1) , 通过 ssh-agent(1) ,或通过 PKCS11Provider
要么 SecurityKeyProvider
.
Arguments to CertificateFile
may use the tilde syntax to refer to a user's home directory, the tokens described in the TOKENS section and environment variables as described in the ENVIRONMENT VARIABLES section.
可以指定多个证书文件 配置文件; 这些证书将依次尝试。 多种的 CertificateFile
指令将添加到 用于身份验证的证书列表。
如果设置为 yes
ssh(1) 将额外检查主机 IP 地址 known_hosts 文件中的 。 这允许它 检测主机密钥是否因 DNS 欺骗而更改,并将添加以下地址 目标主机到 ~/.ssh/known_hosts 中 过程,无论设置如何 StrictHostKeyChecking
. 如果该选项设置为 no
(默认),检查不会 执行。
指定允许的密码及其优先顺序。 多种的 密码必须以逗号分隔。 如果指定的列表以 '+' 字符,则将附加指定的密码 到默认设置而不是替换它们。 如果指定的列表开始 带有“-”字符,然后是指定的密码(包括 通配符)将从默认设置中删除,而不是替换它们。 如果指定的列表以 '^' 字符开头,则 指定的密码将放置在默认设置的开头。
支持的密码是:
3des-cbc aes128-cbc aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com chacha20-poly1305@openssh.com
默认为:
chacha20-poly1305@openssh.com, aes128-ctr,aes192-ctr,aes256-ctr, aes128-gcm@openssh.com,aes256-gcm@openssh.com
可用密码列表也可以使用 “ssh -Q 密码”。
指定指定的所有本地、远程和动态端口转发 在配置文件或命令行中被清除。 这个选项 主要用于从