<Linux>《OpenSSH 守护进程配置文件sshd_config详解》

《OpenSSH 守护进程配置文件sshd_config详解》

1 描述

Sshd (8)从/etc/ssh/sshd _ config (或命令行中用-f 指定的文件)读取配置数据。该文件包含关键字参数对,每行一个。除非另有说明,对于每个关键字,将使用第一个获得的值。以“ #”开头的行和空行被解释为注释。参数可以选择用双引号(“)括起来,以表示包含空格的参数。
/etc/ssh/sshd _ config文件应该只能由 root 用户写入

2 关键字

可能的关键字及其含义如下(注意,关键字不区分大小写,参数区分大小写) :

2.1 AcceptEnv

指定客户端发送的哪些环境变量将被复制到会话的环境(7)中。请参阅 ssh _ config (5)中的 SendEnv 和 SetEnv 以了解如何配置客户机。当客户端根据协议要求请求伪终端时,TERM 环境变量总是被接受。变量通过名称指定,名称可能包含通配符‘ *’和‘ ?’.多个环境变量可以用空格分隔,也可以跨多个 AcceptEnv 指令分布。请注意,有些环境变量可能被用来绕过受限制的用户环境。出于这个原因,在使用这个指令时应该小心。默认情况下不接受任何环境变量。

2.2 AddressFamily

指定 sshd (8)应该使用哪个地址族。有效参数可以是任何(默认值)、 inet (仅使用 IPv4)或 inet6(仅使用 IPv6)。

2.3 AllowAgentForwarding

指定是否允许 ssh-agent (1)转发。默认是肯定的。请注意,禁用代理转发并不能提高安全性,除非用户也被拒绝 shell 访问,因为他们总是可以安装自己的转发器。

2.4 AllowGroups

这个关键字后面可以跟一个组名模式列表,用空格分隔。如果指定了,则只允许其主组或补充组列表与其中一个模式匹配的用户登录。只有组名有效; 无法识别数字组 ID。默认情况下,允许所有组登录。返回文章页面允许/拒绝组指令的处理顺序如下:
DenyGroups, AllowGroups.
有关模式的更多信息,请参见 ssh _ config (5)中的 PATTERNS。此关键字可能多次出现在 sshd _ config 中,每个实例都附加到列表中。

2.5 AllowStreamLocalForwarding

指定是否允许 StreamLocal (Unix 域套接字)转发。可用的选项是 yes (默认值)或 all,允许 StreamLocal 转发,no 用于防止所有 StreamLocal 转发,local 用于只允许本地(从 ssh (1)的角度来看)转发或 remote 用于只允许远程转发。请注意,禁用 StreamLocal 转发并不能提高安全性,除非用户也被拒绝 shell 访问,因为他们总是可以安装自己的转发器。

2.6 AllowTcpForwarding

指定是否允许 TCP 转发。可用的选项是 yes (默认情况下)或 all,允许 TCP 转发,no 用于防止所有 TCP 转发,local 用于只允许本地(从 ssh (1)的角度来看)转发或 remote 用于只允许远程转发。请注意,禁用 TCP 转发并不能提高安全性,除非用户也被拒绝 shell 访问,因为他们总是可以安装自己的转发器。

2.7 AllowUsers

这个关键字后面可以跟一个用空格分隔的用户名模式列表。如果指定了,则只允许匹配其中一种模式的用户名登录。只有用户名有效; 无法识别数字用户 ID。默认情况下,允许所有用户登录。如果模式采用 USER@HOST 格式,那么将分别检查 USER 和 HOST,将登录限制为来自特定主机的特定用户。HOST 标准还可能包含要匹配的 CIDR 地址/掩码格式的地址。返回文章页面允许/拒绝用户指令的处理顺序如下:
DenyUsers, AllowUsers.
有关模式的更多信息,请参见 ssh _ config (5)中的 PATTERNS。此关键字可能多次出现在 sshd _ config 中,每个实例都附加到列表中。

2.8 AuthenticationMethods

指定必须成功完成的身份验证方法 要授予用户访问权限。此选项后面必须有一个或多个 逗号分隔的身份验证方法名称的更多列表,或者使用 单根弦
any
指示接受任何单一身份验证方法的默认行为。如果重写了默认值,那么成功的身份验证需要完成这些列表中至少一个列表中的每个方法。
举例来说,「公开密码、密码公开密码、键盘互动」要求使用者完成公开密钥认证,然后是密码或键盘互动认证。每个阶段只提供一个或多个列表中的下一个方法,因此对于本例,在公钥之前不可能尝试密码或键盘交互式身份验证。

对于键盘交互式身份验证,还可以根据服务器配置,通过在后面追加冒号、设备标识符 bsdauth、 pam 或 skey 来限制对特定设备的身份验证。例如,“键盘交互式: bsdauth”将限制键盘交互式身份验证到 bsdauth 设备。

如果公钥方法被多次列出,sshd (8)将验证已成功使用的密钥不会被重用于后续身份验证。例如,“ pubickey,pubickey”要求使用两个不同的公钥进行成功的身份验证。

注意,列出的每个身份验证方法也应该在配置中显式启用。

可用的身份验证方法有: “ gssapi-with-mic”、“ hostbased”、“键盘交互式”、“ none”(在启用 PermitEmptyPasswords 时用于访问无密码帐户)、“ password”和“ publicickey”。

2.9 AuthorizedKeysCommand

指定用于查找用户的公钥的程序。该程序必须为 root 用户所拥有,不能由组或其他用户写入,并由绝对路径指定。论点
AuthorizedKeysCommand 接受 代币 如果未指定参数,则使用目标用户的用户名。
该程序应该在标准输出上生成零行或多行 Authored_ key 输出(请参见 sshd (8)中的 AUTHORIZED _ KEYS)。在通常的 AuthorizedKeysFile 文件之后尝试 AuthorizedKeysCommand,如果在其中找到匹配的键,则不执行 AuthorizedKeysCommand。默认情况下,不运行 AuthorizedKeysCommand。

2.AuthorizedKeysCommandUser

指定在其帐户下运行 AuthorizedKeysCommand 的用户。建议使用在主机上除了运行授权密钥命令之外没有其他角色的专用用户。如果指定了 AuthorizedKeysCommand 但没有指定 AuthorizedKeysCommandUser,则 sshd (8)将拒绝启动。

2.11 AuthorizedKeysFile

指定包含用于用户身份验证的公钥的文件。Sshd (8)的 AUTHORIZED _ KEYS 文件格式部分描述了该格式。AuthorizedKeysFile 的参数接受 TOKENS 部分中描述的令牌。展开之后,AuthorizedKeysFile 被认为是一个绝对路径或一个相对于用户主目录的路径。可以列出多个文件,用空格分隔。或者,可以将此选项设置为 none,以跳过对文件中的用户键的检查。默认值是”。Ssh/Authorized_ keys.Ssh/authored_ keys2”。

2.12 AuthorizedPrincipalsCommand

指定用于生成允许证书列表的程序 根据
AuthorizedPrincipalsFile
。的 程序必须为 root 用户所拥有,不能被组或其他用户写入,并且 由绝对路径指定 �
AuthorizedPrincipalsCommand 收下代币 境查核人 代币 如没有 参数,然后使用目标用户的用户名。 �
该程序应该在标准输出上生成 AuthorizedPrincipalsFile 输出的零行或多行。如果指定了 AuthorizedPrincipalsCommand 或 AuthorizedPrincipalsFile,则客户端为身份验证提供的证书必须包含列出的主体。默认情况下,不运行 AuthorizedPrincipalsCommand。

2.13 AuthorizedPrincipalsCommandUser

指定运行 AuthorizedPrincipalsCommand 的帐户所在的用户。建议使用在主机上除了运行授权主体命令之外没有其他角色的专用用户。如果指定了 AuthorizedPrincipalsCommand 但没有指定 AuthorizedPrincipalsCommandUser,则 sshd (8)将拒绝启动。

2.14 AuthorizedPrincipalsFile

指定列出接受的主体名称的文件 证书身份验证。当使用由列出的密钥签名的证书时 进去
TrustedUserCAKeys
,这个文件列出名称,一 其中必须出现在证书,它被接受为 每行列出一个名称,前面有密钥选项(如 描述 �
密钥文件 格式 进去 Sshd (8))开始的空行和注释 ’#被忽略了。 �
AuthorizedPrincipalsFile 的参数接受 TOKENS 部分中描述的令牌。展开之后,AuthorizedPrincipalsFile 被视为一个绝对路径或者一个相对于用户主目录的路径。默认值为 no,即不使用主体文件——在这种情况下,用户的用户名必须出现在证书的主体列表中才能被接受。

请注意,AuthorizedPrincipalsFile 只有在身份验证继续使用 TrustedUserCAKeys 中列出的 CA 时才使用,并且不会通过 ~/查询受信任的认证机构。Ssh/authority _ keys,不过主体 = key 选项提供了类似的功能(详细信息请参阅 sshd (8))。

2.15 Banner

在允许身份验证之前,将指定文件的内容发送给远程用户。如果参数为无,则不显示横幅。默认情况下,不显示横幅。

2.16 CASignatureAlgorithms

指定允许证书颁发机构(CA)对证书进行签名的算法。默认值是:

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

如果指定的列表以“ +”字符开头,那么指定的算法将被附加到默认集,而不是替换它们。如果指定的列表以“-”字符开头,那么指定的算法(包括通配符)将从默认集中删除,而不是替换它们。

使用其他算法签名的证书将不被接受用于公钥或基于主机的身份验证。

2.17 ChannelTimeout

指定是否以及以多快的速度 Sshd (8)
应该关闭非活动频道。超时被指定为一个或多个由空格分隔的“ type = time”对,其中“ type”必须是通道类型名称(如下表所述) ,可选地包含通配符。
超时值“间隔”以秒为单位指定,或者可以使用 TIME FORMATS 部分中记录的任何单位。例如,“ session: * = 5m”将导致所有会话在5分钟不活动后终止。指定零值将禁用非活动超时。

现有的频道类型包括:

agent-connection
打开到 ssh-agent 的连接(1)。
Direct-tcpip,direct-stream local@openssh.com
分别打开通过 ssh (1)本地转发建立的 TCP 或 Unix 套接字连接,即 LocalForward 或 DynamicForward。
转发-tcpip,转发-stream-local@openssh.com
打开已经建立到代表 ssh (1)远程转发(即 RemoteForward)侦听的 sshd (8)的 TCP 或 Unix 套接字(分别)连接。
session:command
命令执行会话。
session:shell
交互式 shell 会话。
session:subsystem:…
子系统会话,例如 sftp (1) ,它可以标识为 session: Subsystem: sftp。
x11-connection
打开 X11转发会话。
请注意,在上述所有情况下,终止非活动会话并不能保证删除与会话相关的所有资源,例如,与会话相关的 shell 进程或 X11客户端可能会继续执行。

此外,终止非活动通道或会话并不一定会关闭 SSH 连接,也不会阻止客户端请求另一个相同类型的通道。特别是,非活动转发会话到期不会阻止随后创建另一个相同的转发。另请参见 UnusedConnectionTimeout,它可以与此选项一起使用。

默认情况下,任何类型的通道都不会因为不活动而过期。

2.18 ChrootDirectory

指定目录的路径名 � Chroot (2) 在会话启动时 � Sshd (8)
� 检查路径名的所有组件都是 root 拥有的目录 不能被任何其他用户或组写入, �
Sshd (8) � 将工作目录更改为用户的主目录 � ChrootDirectory 接受 � 代币 部分。 �
ChrootDirectory 必须包含支持用户会话所需的文件和目录。对于交互式会话,这至少需要一个 shell,通常是 sh (1)和基本/dev 节点,如 null (4)、 zero (4)、 stdin (4)、 stdout (4)、 stderr (4)和 tty (4)设备。对于使用 SFTP 的文件传输会话,如果使用进程内 SFTP-server,则不需要额外的环境配置,尽管使用日志记录的会话可能需要在某些操作系统的 chroot 目录中使用/dev/log (详见 SFTP-server (8))。

为了安全起见,防止系统上的其他进程(特别是监狱外的进程)修改目录层次结构非常重要。错误配置可能导致 sshd (8)无法检测到的不安全环境。

默认值为 none,表示不要 chroot (2)。

2.19 Ciphers

指定允许的密码。多个密码必须以逗号分隔。如果指定的列表以“ +”字符开头,那么指定的密码将被追加到默认集,而不是替换它们。如果指定的列表以“-”字符开头,那么指定的密码(包括通配符)将从默认集中删除,而不是替换它们。如果指定的列表以“ ^”字符开头,那么指定的密码将放置在默认集的头部。
支援的密码包括:

3des-cbc
128-cbc
192-cbc
256-cbc
128-ctr
192-ctr
256-ctr
Es128-gcm@openssh.com
Es256-gcm@openssh.com
Chacha20-poly1305@openssh.com

默认值是:

Chacha20-poly1305@openssh.com,es128-ctr,es192-ctr,es256-ctr,es128-gcm@openssh.com,es256-gcm@openssh.com

也可以使用“ ssh-Q 密码”获得可用密码的列表。

2.20 ClientAliveCountMax

设置可以发送的客户端活动消息的数量 Sshd (8)
接收来自客户端的任何消息。如果在发送客户端活动消息时达到此阈值,sshd 将断开客户端连接,终止会话。需要注意的是,客户端活动消息的使用与
TCPKeepAlive
.客户端活动消息通过加密通道发送,因此不可欺骗。启用的 TCP Keepalive 选项
TCPKeepAlive
是可以欺骗的。当客户端或服务器依赖于知道连接何时变得无响应时,客户端活动机制是有价值的。
默认值为3。如果 ClientAliveInterval 设置为15,且 ClientAliveCountMax 保持默认值,则无响应的 SSH 客户端将在大约45秒后断开连接。设置为零 ClientAliveCountMax 将禁用连接终止。

2.21 ClientAliveInterval

设置一个超时间隔(以秒为单位) ,如果超时后客户端没有收到数据,sshd (8)将通过加密通道发送消息,请求客户端的响应。默认值为0,表示不会将这些消息发送到客户端。

2.22 Compression

指定在用户成功进行身份验证后是否启用压缩。这个参数必须是“是”、“延迟”(遗留的同义词是“是”)或“否”。默认是肯定的。

2.23 DenyGroups

这个关键字后面可以跟一个组名模式列表,用空格分隔。主要组或补充组列表与其中一个模式匹配的用户不允许登录。只有组名有效; 无法识别数字组 ID。默认情况下,允许所有组登录。返回文章页面允许/拒绝组指令的处理顺序如下:
DenyGroups, AllowGroups.
有关模式的更多信息,请参见 ssh _ config (5)中的 PATTERNS。此关键字可能多次出现在 sshd _ config 中,每个实例都附加到列表中。

2.24 DenyUsers

这个关键字后面可以跟一个用空格分隔的用户名模式列表。不允许与其中一种模式匹配的用户名登录。只有用户名有效; 无法识别数字用户 ID。默认情况下,允许所有用户登录。如果模式采用 USER@HOST 格式,那么将分别检查 USER 和 HOST,将登录限制为来自特定主机的特定用户。HOST 标准可能还包含要匹配的 CIDR 地址/掩码格式的地址。返回文章页面允许/拒绝用户指令的处理顺序如下:
DenyUsers, AllowUsers.
有关模式的更多信息,请参见 ssh _ config (5)中的 PATTERNS。此关键字可能多次出现在 sshd _ config 中,每个实例都附加到列表中。

2.25 DisableForwarding

禁用所有转发特性,包括 X11、 ssh-agent (1)、 TCP 和 StreamLocal。此选项覆盖所有其他与转发相关的选项,并可能简化受限制的配置。

2.26 ExposeAuthInfo

写入一个临时文件,其中包含用于对用户进行身份验证的身份验证方法和公共凭据(例如密钥)的列表。文件的位置通过 SSH _ USER _ AUTH 环境变量公开给用户会话。默认值是否定的。

2.27 FingerprintHash

指定在记录密钥指纹时使用的哈希算法。有效选项是: md5和 sha256。默认选项是 sha256。

2.28 ForceCommand

强制执行 ForceCommand 指定的命令,忽略客户端和 ~/提供的任何命令。Ssh/rc (如果存在)。通过使用带-c 选项的用户登录 shell 调用该命令。这适用于 shell、命令或子系统执行。它在 Match 块中最有用。客户端最初提供的命令可以在 SSH _ ORIGINAL _ COMMAND 环境变量中找到。指定 Internal-SFTP 命令将强制使用与 ChrootDirectory 一起使用时不需要支持文件的进程内 SFTP 服务器。默认值为无。

2.29 GatewayPorts

指定是否允许远程主机连接到为客户端转发的端口。默认情况下,sshd (8)将远程端口转发绑定到环回地址。这将防止其他远程主机连接到转发端口。GatewayPorts 可以用来指定 sshd 应该允许远程端口转发绑定到非环回地址,从而允许其他主机进行连接。参数可能是 no,用于强制远程端口转发只对本地主机可用,yes 用于强制远程端口转发绑定到通配符地址,或指定的 client 允许客户端选择转发绑定到的地址。默认值是否定的。

2.30 GSSAPIAuthentication

指定是否允许基于 GSSAPI 的用户身份验证。默认值为 no。

2.31 GSSAPICleanupCredentials

指定是否在注销时自动销毁用户的凭据缓存。默认值为“是”。

2.32 GSSAPIStrictAcceptorCheck

确定是否对客户端进行身份验证所针对的 GSSAPI 接受者的标识严格。如果设置为 yes,那么客户端必须针对当前主机名上的主机服务进行身份验证。如果设置为 no,那么客户端可以根据存储在机器默认存储中的任何服务密钥进行身份验证。本设施提供协助多家机器的操作。默认是肯定的。

2.33 HostbasedAcceptedAlgorithms

指定将被接受用于基于主机的签名算法 身份验证作为逗号分隔的模式列表 指定的列表以“ +”字符开头,然后 指定的签名算法将附加到默认集 如果指定的列表以“-”开头,则不能替换它们 字符,则执行指定的签名算法(包括通配符) 将从默认集中移除,而不是替换它们 指定的列表以“ ^”字符开头,然后 指定的签名算法将放在默认值的前面 此选项的默认值为: �

Ssh-ed25519-cert-v01@openssh.com,
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
sk-ssh-ed25519-cert-v01@openssh.com,
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
rsa-sha2-512-cert-v01@openssh.com,
rsa-sha2-256-cert-v01@openssh.com,
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-Q HostbasedAccepted”获得。

2.34 HostbasedAuthentication

指定是否允许 rhosts 或/etc/hosts.equv 身份验证以及成功的公钥客户端主机身份验证(基于主机的身份验证)。默认值是否定的。

2.35 HostbasedUsesNameFromPacketOnly

指定服务器在匹配 ~/中的名称时是否尝试执行反向名称查找。小姐。在 HostbasedAuthentication 期间使用 rhosts 和/etc/hosts.quiv 文件。设置 yes 意味着 sshd (8)使用客户端提供的名称,而不是尝试从 TCP 连接本身解析名称。默认值是否定的。

2.36 HostCertificate

指定包含公共主机证书的文件。证书的公钥必须与 HostKey 已经指定的私有主机密钥匹配。Sshd (8)的默认行为是不加载任何证书。

2.37 HostKey

指定一个包含 SSH 使用的私有主机密钥的文件 /etc/ssh/ssh _ host _ ecdsa _ key, /etc/ssh/ssh _ host _ ed25519 _ key 还有 /etc/ssh/ssh _ host _ rsa _ key.
请注意,如果文件是 group/world-access,sshd (8)将拒绝使用该文件,并且 HostKeyStrategies 选项将限制 sshd (8)实际使用哪些密钥。

可能有多个主机密钥文件。也可以改为指定公共主机密钥文件。在这种情况下,对私钥的操作将委托给 ssh-agent (1)。

2.38 HostKeyAgent

标识用于与具有私有主机密钥访问权限的代理进行通信的 UNIX 域套接字。如果指定了字符串“ SSH _ AUTH _ SOCK”,套接字的位置将从 SSH _ AUTH _ SOCK 环境变量读取。
HostKeyAlgorithms
指定服务器提供的主机密钥签名算法。这个选项的默认值是:

Ssh-ed25519-cert-v01@openssh.com,
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
sk-ssh-ed25519-cert-v01@openssh.com,
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
rsa-sha2-512-cert-v01@openssh.com,
rsa-sha2-256-cert-v01@openssh.com,
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-Q HostKey 算法”获得。

2.39 IgnoreRhosts

指定是否忽略每个用户 。 rhosts 还有 。射击 文件 HostbasedAuthentication。系统范围 /etc/hosts.quiv 还有 /etc/shosts.quiv 无论这个设置是什么,都会继续使用。
接受的值是 yes (默认值) ,用于忽略所有每个用户的文件,只允许使用。只是无视。不管有没有宿主都允许。枪手和枪手。

2.40 IgnoreUserKnownHosts

指定 sshd (8)是否应忽略用户的 ~/。Ssh/known _ hosts,并且只使用系统范围的已知主机文件/etc/ssh/ssh _ known _ hosts。默认值是“否”。

2.41 Include

包括指定的配置文件。可以指定多个路径名,每个路径名可以包含 globb (7)通配符,这些通配符将按照词法顺序展开和处理。假定没有绝对路径的文件位于/etc/ssh 中。一个头文件可能出现在 Match 块中执行条件包含。

2.42 IPQoS

指定连接的 IPv4服务类型或 DSCP 类。接受的值是 af11,af12,af13,af21,af22,af23,af31,af32,af33,af41,af42,af43,cs0,cs1,cs2,cs3,cs4,cs5,cs6,cs7,ef,le,lowlate,吞吐量,可靠性,数值,或没有使用操作系统默认值。此选项可以采用一个或两个参数,用空格分隔。如果指定了一个参数,则无条件地将其用作数据包类。如果指定了两个值,则自动为交互式会话选择第一个值,为非交互式会话选择第二个值。交互式会话的默认值为 af21(低延迟数据) ,非交互式会话的默认值为 cs1(较低的工作量)。

2.43 KbdInteractiveAuthentication

指定是否允许键盘交互式身份验证。支持 login.conf (5)中的所有身份验证样式。默认是肯定的。此关键字的参数必须是 yes 或 no。ChallengeResponseAuthentication 是此。

2.44 KerberosAuthentication

指定用户为 PasswordAuthentication 提供的密码是否将通过 Kerberos KDC 进行验证。要使用这个选项,服务器需要一个 Kerberos servtab,它允许验证 KDC 的标识。默认值是否定的。

2.45 KerberosGetAFSToken

如果 AFS 处于活动状态,并且用户拥有 Kerberos 5 TGT,请在访问用户的主目录之前尝试获取 AFS 令牌。默认值是否定的。

2.46KerberosOrLocalPasswd

如果通过 Kerberos 的密码身份验证失败,那么将通过任何其他本地机制(如/etc/passwd)验证密码。默认是肯定的。

2.47 KerberosTicketCleanup

指定是否在注销时自动销毁用户的票据缓存文件。默认值为“是”。

2.48 KexAlgorithms

指定可用的 KEX (密钥交换)算法。多个算法必须以逗号分隔。另外,如果指定的列表以“ +”字符开头,那么指定的算法将附加到默认集,而不是替换它们。如果指定的列表以“-”字符开头,那么指定的算法(包括通配符)将从默认集中删除,而不是替换它们。如果指定的列表以“ ^”字符开头,那么指定的算法将放在默认集的前面。支持的算法如下:

Curve25519-sha256
Curve25519-sha256@libssh.org
Difie-hellman-group1-sha1
Difie-hellman-group14-sha1
Difie-hellman-group14-sha256
Difie-Hellman-group16-sha512
Difie-Hellman-group18-sha512
Didie-hellman-group-exchange-sha1
Didie-hellman-group-exchange-sha256
Ecdh-sha2-nistp256
Ecdh-sha2-nistp384
Ecdh-sha2-nistp521
Sntrup761x25519-sha512@openssh.com

默认值是:

Sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,defie-hellman-group-exchange-sha256,defie-hellman-group16-sha512,defie-hellman-group18-sha512,defie-hellman-group14-sha256

可用的密钥交换算法的列表也可以使用“ ssh-Q Kex”获得。

2.49 ListenAddress

指定本地地址 Sshd (8) 可使用下列表格:
ListenAddress 主机名 | address [ rdomain domain ]
ListenAddress 主机名: port [ rdomain domain ]
ListenAddress IPv4 _ address: port [ rdomain domain ]
ListenAddress [ hostname | address ] : port [ rdomain domain ]
可选的 rdomain 限定符请求 sshd (8)在显式路由域中侦听。如果没有指定 Port,sshd 将侦听指定的地址和所有 Port 选项。默认情况下,侦听当前默认路由域上的所有本地地址。允许多个 ListenAddress 选项。有关路由域的更多信息,请参见 rdomain (4)。

2.50 LoginGraceTime

如果用户没有成功登录,此时服务器将断开连接。如果值为0,则没有时间限制。默认值是120秒。

2.51 LogLevel

给出从 sshd (8)记录消息时使用的详细级别。可能的值是: QUIEET、 FATAL、 ERROR、 INFO、 VERBOSE、 DEBUG、 DEBUG1、 DEBUG2和 DEBUG3。默认值是 INFO。DEBUG 和 DEBUG1是等价的。DEBUG2和 DEBUG3分别指定更高级别的调试输出。使用 DEBUG 级别的日志记录侵犯了用户的隐私,因此不建议使用。
LogVerbose
指定一个或多个对 LogLevel 的重写。重写由一个模式列表组成,该列表与源文件、函数和行号匹配,以强制进行详细的日志记录。例如,重写模式为:
C: * : 1000,* : kex _ exchange _ Identity () : * ,packet.c: *
将为 kex.c 的第1000行、 kex _ exchange _ Identity ()函数中的所有内容以及 packet.c 文件中的所有代码启用详细的日志记录。此选项用于调试,默认情况下不启用重写。

2.52 MACs

指定可用的 MAC (讯息鑑别码)算法。MAC 算法用于数据完整性保护。多个算法必须以逗号分隔。如果指定的列表以“ +”字符开头,那么指定的算法将被附加到默认集,而不是替换它们。如果指定的列表以“-”字符开头,那么指定的算法(包括通配符)将从默认集中删除,而不是替换它们。如果指定的列表以“ ^”字符开头,那么指定的算法将放在默认集的前面。
包含“-etm”的算法在加密后计算 MAC (然后加密 MAC)。这些被认为是安全的,建议使用。获资助的互委会包括:

Hmac-md5
Hmac-md5-96
Hmac-sha1
Hmac-sha1-96
Hmac-sha2-256
Hmac-sha2-512
Umac-64@openssh.com
Umac-128@openssh.com
Hmac-md5-etm@openssh.com
Hmac-md5-96-etm@openssh.com
Hmac-sha1-etm@openssh.com
Hmac-sha1-96-etm@openssh.com
Hmac-sha2-256-etm@openssh.com
Hmac-sha2-512-etm@openssh.com
Umac-64-etm@openssh.com
Umac-128-etm@openssh.com

默认值是:

Hmac-sha2-512-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1-etm@openssh.com,hmac-sha2-512,hmac-sha1-etm@openssh.com,hmac-sha2-512,hmac-sha1,hmac-sha1-etm@openssh.com,hmac-sha2-512,hmac

可用的 MAC 算法列表也可以使用“ ssh-Q MAC”获得。

2.53 Match

引入条件块。如果 � Match
行上的关键字 下面的代码行将重写在配置的全局部分中设置的代码行 文件,直到另一个
Match 线或结束 如果一个关键字出现在多个 � Match 满足的块,只有第一个 关键字的实例。 �
Match 的参数是一个或多个匹配所有条件的条件模式对或单个标记 All。可用的条件是 User、 Group、 Host、 LocalAddress、 LocalPort、 RDomain 和 Address (RDomain 表示接收连接的 RDomain (4))。

匹配模式可以由单个条目或逗号分隔的列表组成,并且可以使用 ssh _ config (5)的 PATTERNS 部分中描述的通配符和否定运算符。

Address 标准中的模式还可以包含 CIDR Address/masklen 格式的匹配地址,例如192.0.2.0/24或2001: db8: :/32。请注意,提供的掩码长度必须与地址一致-指定一个掩码长度是一个错误,太长的地址或位设置在这个主机部分的地址。例如,分别为192.0.2.0/33和192.0.2.0/8。

在 Match 关键字后面的行上只能使用关键字的子集。可用的关键字是 AcceptEnv,AllowAgentForforward,AllowGroup,AllowStreamLocalForforward,AllowTcpForforward,AllowUsers,AuthenticationMethod,AuthorizedKeysCommand,AuthorizedKeysCommandUser,AuthorizedKeysFile,authorizedPrincipalsCommand,AuthorizedPrincipalsCommandUser,AuthorizedPrincipalsFile,Banner,CASignature 算法,ChannelTimeout,ChrootDirectory,ClientAliveCountMax,ClientAliveInterval,DenyGroups,DenyUsers,DisableForforward,ExposAuthInfo,ForceCommand,GatewayPorts,包括,IPQoS,KbdInteractiveAuthentication,KerberosAuthentication,LogLevel,MaxAuthTris,MaxSessions,PasswordAuthentication,PermitEmptyPasswords,PermitListen,PermitOpen,PermitRootLogin,permitTTY,许可隧道,PermitUserRC,PubkeyAcceptedOptims,PubkeyAuthentication,PubkeyAuthOptions,RekeyLimit,RevokedKeys,RDomain,SetEnv,StreamLocalBindMask,StreamLocalBindUnlink,TrustedUserCAKeys,UnusedConnectionTimeout,X11DisplayOffset,X11Forforward 和 X11UseLocalhost。

2.54 MaxAuthTries

指定每个连接允许的最大身份验证尝试次数。一旦失败的次数达到这个值的一半,就会记录其他失败。默认值是6。

2.55 MaxSessions

指定每个网络连接允许打开的 shell、登录或子系统(例如 sftp)会话的最大数量。支持连接多路复用的客户端可以建立多个会话。将 MaxSessions 设置为1将有效地禁用会话复用,而将其设置为0将阻止所有 shell、登录和子系统会话,同时仍然允许转发。默认值是10。

2.56 MaxStartups

指定到 SSH 守护进程的未经身份验证的并发连接的最大数量。将删除其他连接,直到身份验证成功或
LoginGraceTime 连接过期。默认值为10:30:100。
或者,可以通过指定三个冒号分隔的值 start: rate: full (例如“10:30:60”)来启用随机提前下降。如果当前有未经身份验证的连接启动(10) ,sshd (8)将以概率/100(30%)拒绝连接尝试。如果未经身份验证的连接数达到满数(60) ,则概率线性增加,并且拒绝所有连接尝试。

2.57 ModuliFile

指定模块(5)文件,该文件包含用于“ defie-hellman-group-exchange-sha1”和“ defie-hellman-group-exchange-sha256”密钥交换方法的 Diffie-Hellman 组。默认值是/etc/moduli。

2.58 PasswordAuthentication

指定是否允许密码身份验证。默认值为“是”。

2.59 PermitEmptyPasswords

当允许密码身份验证时,它指定服务器是否允许使用空密码字符串登录帐户。默认值是否定的。

2.60 PermitListen

指定远程 TCP 端口转发可以侦听的地址/端口。监听规范必须是下列形式之一:
听港口
允许监听主机: 端口
可以通过使用空格分隔多个权限来指定它们。Any 的参数可用于移除所有限制并允许任何侦听请求。无参数的参数可用于禁止所有侦听请求。主机名可以包含 ssh _ config (5)中 PATTERNS 部分中描述的通配符。通配符‘ *’也可以用来代替允许所有端口的端口号。默认情况下,允许所有端口转发侦听请求。请注意,GatewayPorts 选项可能会进一步限制监听哪些地址。另请注意,如果没有特别请求侦听主机,ssh (1)将请求侦听主机“ localhost”,并且该名称与显式的本地主机地址“127.0.0.1”和“ : : 1”的处理方式不同。

2.61 PermitOpen

指定允许 TCP 端口转发到的目的地。转运规范必须是下列形式之一:
PermitOpen 主机: 端口
PermitOpen IPv4 _ addr: port
PermitOpen [ IPv6 _ addr ] : port
可以通过使用空格分隔它们来指定多个转发。可以使用 any 参数来消除所有限制并允许任何转发请求。无参数可用于禁止所有转发请求。通配符‘ *’可用于主机或端口,以分别允许所有主机或端口。否则,不会对提供的名称执行模式匹配或地址查找。默认情况下,允许所有端口转发请求。

2.62 PermitRootLogin

指定 root 用户是否可以使用 � Ssh (1)。的 理由必须是 yes, prohibit-password, forced-commands-only或者 � no。默认是 � prohibit-password.
如果此选项设置为 ban-password (或其不推荐的别名,没有-password) ,则对 root 用户禁用密码和键盘交互式身份验证。

如果这个选项设置为强制命令-only,那么允许使用公共密钥认证的 root 登录,但前提是已经指定了 command 选项(即使 root 登录通常不被允许,这对于进行远程备份也可能很有用)。对 root 用户禁用所有其他身份验证方法。

如果此选项设置为 no,则不允许 root 用户登录。

2.63 PermitTTY

指定是否允许 pty (4)分配。默认值为 yes。
PermitTunnel
指定是否 屯(4) 设备转发是允许的。参数必须是 � yes, point-to-point (层 3)、, ethernet (第2层) ,或 � no。指定 yes 许可证 都有 point-to-point 还有 ethernet。默认是 � no.
与此设置无关,选定的 tun (4)设备的权限必须允许访问用户。

2.64 PermitUserEnvironment

指定是否 ~/。Ssh/環境和環境 = ~/中的選項。Ssh/authority _ keys 由 sshd (8)处理。有效的选项是“是”、“否”或指定接受哪些环境变量名称的模式列表(例如“ lANG,LC _ *”)。默认值是否定的。启用环境处理可以使用 LD _ PRELOAD 等机制在某些配置中绕过访问限制。

2.65 PermitUserRC

指定是否执行任何 ~/. ssh/rc 文件。默认值为 yes。

2.66 PerSourceMaxStartups

指定从给定源地址允许的未经身份验证的连接数,如果没有限制,则为“无”。这个限制适用于除了麦克斯创业公司,以较低者为准。默认值为无。

2.67 PerSourceNetBlockSize

指定为应用 PerSourceMaxStarups 限制而组合在一起的源地址位数。可以指定 IPv4和可选的 IPv6的值,用冒号分隔。默认值是32:128,这意味着每个地址都是单独考虑的。

2.68 PidFile

指定包含 SSH 守护进程的进程 ID 的文件,或者不包含进程 ID 的文件。默认值是/var/run/sshd.pid。

2.69 Port

指定 sshd (8)侦听的端口号。默认值是22。允许此类型的多个选项。另见 ListenAddress。

2.70 PrintLastLog

指定当用户以交互方式登录时,sshd (8)是否应打印最后一次用户登录的日期和时间。默认是肯定的。

2.71 PrintMotd

指定当用户以交互方式登录时,sshd (8)是否应该打印/etc/motd。(在某些系统中,它也是由 shell、/etc/profile 或等价物打印的。)默认是肯定的。

2.72 PubkeyAcceptedAlgorithms

将公共密钥认证接受的签名算法指定为逗号分隔的模式列表。另外,如果指定的列表以“ +”字符开头,那么指定的算法将附加到默认集,而不是替换它们。如果指定的列表以“-”字符开头,那么指定的算法(包括通配符)将从默认集中删除,而不是替换它们。如果指定的列表以“ ^”字符开头,那么指定的算法将放在默认集的前面。这个选项的默认值是:

Ssh-ed25519-cert-v01@openssh.com,
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
sk-ssh-ed25519-cert-v01@openssh.com,
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
rsa-sha2-512-cert-v01@openssh.com,
rsa-sha2-256-cert-v01@openssh.com,
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-QPubkeyAccepted”获得。

2.73 PubkeyAuthOptions

设置一个或多个公共密钥认证选项,支持的关键字是: none (默认值; 表示没有启用其他选项) , touch-required 还有 verify-required.
触摸选项使得使用 FIDO 身份验证算法(即 ecdsa-sk 或 ed25519-sk)的公共密钥认证总是要求签名来证明当时在场的用户明确确认了身份验证(通常是通过触摸身份验证器)。默认情况下,sshd (8)需要用户在场,除非使用 Authored_ keys 选项覆盖。触摸所需的标志禁用此覆盖。

验证所需的选项需要 FIDO 密钥签名证明用户已被验证,例如通过 PIN。

触摸要求或验证要求的选项对其他非 FIDO 公钥类型都没有任何影响。

2.74 PubkeyAuthentication

指定是否允许公共密钥认证。默认值为 yes。

2.75 RekeyLimit

指定在重新协商会话密钥之前可以传输或接收的最大数据量,还可以选择在重新协商会话密钥之前可以传递或接收的最大时间量。第一个参数以字节为单位指定,后缀可以是‘ K’、‘ M’或‘ G’,分别表示千字节、兆字节或千兆字节。默认值在“1G”和“4G”之间,这取决于密码。可选的第二个值以秒为单位,可以使用 TIME FORMATS 部分中记录的任何单位。RekeyLimit 的默认值为 default none,这意味着在发送或接收密码的默认数据量之后执行密钥更新,不执行基于时间的密钥更新。

2.76 RequiredRSASize

指定 sshd (8)将接受的最小 RSA 密钥大小(位)。小于此限制的用户和基于主机的身份验证密钥将被拒绝。默认值是1024位。注意,此限制只能从默认值引发。

2.77 RevokedKeys

指定已撤销的公钥文件,或者没有指定不使用公钥文件。此文件中列出的密钥将被拒绝公开密钥认证。请注意,如果这个文件不可读,那么所有用户的公共密钥认证都将被拒绝。密钥可以指定为文本文件,每行列出一个公钥,或者 ssh-keygen (1)生成的 OpenSSH 密钥撤销列表(KRL)。有关 KRL 的更多信息,请参见 ssh-keygen (1)中的 KEY REVOCATION LISTS 部分。

2.78RDomain

指定在身份验证完成后应用的显式路由域。用户会话以及任何转发或监听的 IP 套接字都将绑定到这个 rdomain (4)。如果路由域设置为% D,则将应用接收到传入连接的域。

2.79 SecurityKeyProvider

指定库的路径,该路径将在加载 FIDO 身份验证程序托管的密钥时使用,重写使用内置 USB HID 支持的默认值。

2.80 SetEnv

将 sshd (8)启动的子会话中要设置的一个或多个环境变量指定为“ NAME = VALUE”。可以引用环境值(例如,如果它包含空格字符)。SetEnv 设置的环境变量覆盖默认环境和用户通过 AcceptEnv 或 PermitUserEnvironment 指定的任何变量。

2.81 StreamLocalBindMask

设置创建本地或远程端口转发的 Unix 域套接字文件时使用的八进制文件创建模式掩码(umask)。此选项仅用于端口转发到 Unix 域套接字文件。
默认值是0177,它创建一个 Unix 域套接字文件,该文件只能由所有者读写。注意,并非所有操作系统都遵循 Unix 域套接字文件的文件模式。

2.82 StreamLocalBindUnlink

指定在创建新的 Unix 域套接字文件之前,是否为本地端口转发或远程端口转发删除现有的 Unix 域套接字文件。如果套接字文件已经存在并且
StreamLocalBindUnlink 未启用, sshd
将无法将端口转发到 Unix 域套接字文件。此选项仅用于端口转发到 Unix 域套接字文件。
参数必须是“是”或“否”。默认值是“否”。

2.83 StrictModes

指定在接受登录之前,sshd (8)是否应该检查文件模式以及用户文件和主目录的所有权。这通常是可取的,因为新手有时会意外地使他们的目录或文件世界可写。默认是肯定的。注意,这不适用于 ChrootDirectory,它的权限和所有权是无条件检查的。

2.84 Subsystem

配置外部子系统(例如,文件传输守护进程)。参数应该是一个子系统名称和一个命令(带有可选参数) ,以便在子系统请求时执行。
SFTP-server 命令实现 SFTP 文件传输子系统。

作为替代,Internal-SFTP 名称实现进程内 SFTP 服务器。这可以简化使用 ChrootDirectory 在客户机上强制使用不同的文件系统根的配置。

默认情况下没有定义子系统。

2.85 SyslogFacility

给出从 sshd (8)记录消息时使用的工具代码。可能的值是: DAEMON、 USER、 AUTH、 LOCAL0、 LOCAL1、 LOCAL2、 LOCAL3、 LOCAL4、 LOCAL5、 LOCAL6、 LOCAL7。默认值是 AUTH。
TCPKeepAlive
指定系统是否应向另一端发送 TCP 保留消息。如果他们发送,死亡的连接或崩溃的其中一台机器将被适当地注意到。然而,这意味着如果路由暂时关闭,连接就会中断,有些人会觉得这很烦人。另一方面,如果 TCP keepalives 没有发送,会话可能会无限期地挂起在服务器上,留下“幽灵”用户并消耗服务器资源。
默认值是 yes (用于发送 TCP 保存消息) ,如果网络出现故障或客户端主机崩溃,服务器将会发现。这样可以避免无限悬挂会话。

若要禁用 TCP 保留消息,应将该值设置为 no。

2.86 TrustedUserCAKeys

指定一个文件,该文件包含受信任的证书颁发机构的公钥,这些证书颁发机构可以为用户证书签名以进行身份验证,也可以不使用证书颁发机构的公钥。每行列出一个键; 允许空行和以“ #”开头的注释。如果提供证书进行身份验证,并且该文件中列出了其签名 CA 密钥,则可以使用该证书对证书的主体列表中列出的任何用户进行身份验证。注意,没有主体列表的证书将不允许使用 TrustedUserCAKeys 进行身份验证。有关证书的详细信息,请参阅 ssh-keygen (1)中的 CERTIFICATES 部分。

2.87 UnusedConnectionTimeout

指定是否以及以多快的速度 Sshd (8)
� 应在没有打开通道的情况下关闭客户端连接 包括活动 shell、命令执行或子系统会话 网络、套接字、代理或 X11转发。转发侦听器,如 那些来自
Ssh (1) -R
不视为开放 中指定了超时值 或可能使用任何记录在 �
时间格式 部分。 �
请注意,这个超时在客户端连接完成用户身份验证但是在客户端有机会打开任何通道之前开始。在使用短超时值时应注意,因为它们可能不会提供足够的时间让客户端在终止连接之前请求并打开其通道。

默认情况下,none 将永远不会因为没有打开的通道而使连接过期。此选项在与 ChannelTimeout 一起使用时可能很有用。

2.88 UseDNS

指定是否 Sshd (8)
应该查找远程主机名,并检查 远程 IP 地址的解析主机名映射回相同的 IP 地址。 �
如果这个选项被设置为 no (默认值) ,那么在 ~/中只能使用地址而不能使用主机名。来自和 sshd _ config 匹配主机指令的 ssh/authority _ keys。

2.89 VersionAddendum

可选地指定附加到服务器在连接时发送的 SSH 协议标题的附加文本。默认值为无。

2.90X11DisplayOffset

指定 sshd (8)的 X11转发可用的第一个显示号。这可以防止 sshd 干扰真正的 X11服务器。默认值是10。

2.91 X11Forwarding

指定是否允许 X11转发。参数必须为 � yes 或者 no。默认是 � no.
当启用 X11转发时,如果将 sshd (8)代理显示配置为侦听通配符地址(请参阅 X11UseLocalhost) ,则可能会额外暴露于服务器和客户端显示,尽管这不是默认设置。此外,身份验证欺骗和身份验证数据验证和替换发生在客户端。使用 X11转发的安全风险是,当 SSH 客户机请求转发时,客户机的 X11显示服务器可能会受到攻击(请参见 SSH _ config (5)中的 ForwardX11警告)。系统管理员可能有这样一种立场,即他们希望保护客户端,因为客户端可能会在不知情的情况下请求 x11转发,从而使自己暴露于攻击之下,这可能需要设置 no。

请注意,禁用 X11转发并不妨碍用户转发 X11流量,因为用户总是可以安装自己的转发器。

2.92 X11UseLocalhost

指定 sshd (8)是否应将 X11转发服务器绑定到环回地址或通配符地址。默认情况下,sshd 将转发服务器绑定到回送地址,并将 DISPLAY 环境变量的主机名部分设置为 localhost。这将防止远程主机连接到代理显示。但是,一些较老的 X11客户端可能无法使用此配置。可以将 X11UseLocalhost 设置为 no,以指定转发服务器应该绑定到通配符地址。论点必须是肯定或否定的。默认是肯定的。
XAuthLocation
指定 xauth (1)程序的完整路径名,或者不使用完整路径名。默认值是/usr/X11R6/bin/xauth。

3 时间格式

Sshd (8)指定时间的命令行参数和配置文件选项可以使用以下格式的序列表示: time [修饰符] ,其中 time 是一个正整数值,而修饰符是下列格式之一:

Something none something

格式解释
s | S几秒钟
m | M几分钟
h | H几个小时
d | D几天
w | W几个星期

将序列的每个成员加在一起以计算总时间值。

时间格式示例:

格式解释
600600秒(10分钟)
10米10分钟
1小时30分1小时30分钟(90分钟)

4 字符

某些关键字的参数可以使用在运行时展开的标记:

格式解释
%%字面上的“%”。
% D接收到传入连接的路由域。
% FCA 密钥的指纹。
% f钥匙或证书的指纹。
% h用户的主目录。
% i证书中的密钥 ID。
% KBase64编码的 CA 密钥。
% k用于身份验证的 base64编码的密钥或证书。
% s证书的序列号。
% TCA 密钥的类型。
% t密钥或证书类型。
% U目标用户的数字用户 ID。
% u用户名。

AuthorizedKeysCommand 接受令牌%% 、% f、% h、% k、% t、% U 和% u。

AuthorizedKeysFile 接受令牌%% 、% h、% U 和% u。

AuthorizedPrincipalsCommand 接受令牌%% 、% F、% f、% h、% i、% K、% k、% s、% T、% t、% U 和% u。

AuthorizedPrincipalsFile 接受令牌%% 、% h、% U 和% u。

ChrootDirectory 接受令牌%% 、% h、% U 和% u。

RoutingDomain 接受标记% D。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ealser

坚持免费。使命普及。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值