名称
sshd_config - OpenSSH SSH 服务器守护进程配置文件
大纲
/etc/ssh/sshd_config
描述
sshd(8) 默认从 /etc/ssh/sshd_config 文件(或通过 -f 命令行选项指定的文件)读取配置信息。配置文件是由"指令值"对组成的,每行一个。空行和以'#'开头的行都将被忽略。如果值中含有空白符或者其他特殊符号,那么可以通过在两边加上双引号(")进行界定。
[注意]值是大小写敏感的,但指令是大小写无关的。
当前所有可以使用的配置指令如下:
AcceptEnv
指定客户端发送的哪些环境变量将会被传递到会话环境中。[注意]只有SSH-2协议支持环境变量的传递。
细节可以参考 ssh_config(5) 中的 SendEnv 配置指令。指令的值是空格分隔的变量名列表(其中可以使用'*'和'?'作为通配符)。也可以使用多个 AcceptEnv 达到同样的目的。
需要注意的是,有些环境变量可能会被用于绕过禁止用户使用的环境变量。由于这个原因,该指令应当小心使用。默认是不传递任何环境变量。
AddressFamily
指定sshd使用哪种地址簇。参数可以使“any”,“inet”(IPv4),或者“inet6”(IPv6)。缺省是“any”。
AllowAgentForwarding
指定是否允许ssh-agent转发。缺省是“yes”。注意,禁用代理转发不提高安全性,除非用户也被拒绝shell访问,因此他们能够建立自己的转发器。
AllowGroups
通过组名来限定用户登陆,多个组名时用空格来分隔。AllowGroups的参数只能用组名,组ID号不能被识别。缺省时所有组允许登陆,OpenSSH处理登陆的顺序是:
DenyUsers->AllowUsers->DenyGroups->AllowGroups。
AllowTcpForwarding
指定是否允许转发TCP协议。缺省是“yes”。同样,禁用转发TCP协议也不能提高安全性,除非也拒绝用户的shell访问。
AllowUsers
通过用户名来限定用户登陆,多个用户名时,用空格分隔。该参数只能用用户名(用户ID号不能被用作参数)。缺省时允许所有用户登陆。如果给定的参数是USER@HOST,那么USER和HOST分别被检测,用来限定指定的用户从指定的主机上来登录。
AuthorizedKeysFile
指定包含公共密钥(验证用户的密钥)的文件。
AuthorizedPrincipalsFile
Banner
在用户认证通过前,发送给用户含欢迎词的文件。如果参数是“none”,将不显示欢迎词,并且这个选项只只针对对版本2有效。缺省时是“none”。
ChallengeResponseAuthentication
指定是否允许“质询-相应”认证方式。缺省是“yes”。所有的认证样式在/f中。
ChrootDirectory
认证后,指定chroot的路径名。
马苏事件是啥事
Ciphers
指定版本2允许的加密方式,使用多种加密方式时用“,”分隔。支持的加密方式有:
3des-cbc
杀人烹尸案
aes128-cbc aes192-cbc aes256-cbc
aes128-ctr aes192-ctr aes256-ctr古风意境名字大全
arcfour arcfour128 arcfour256
blowfish-cbc
cast128-cbc
缺省是:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cb c,cast128-cbc,aes192-cbc,aes256-cbc,arcfour
ClientAliveCountMax
允许向客户发送在线消息(超时连接)的最大次数,缺省是“3”。它同TCPKeepAlive不同,客户在线消息采用隧道加密方式传输,因此,它是不可被欺骗的(TCP协议是可被欺骗的)。
ClientAliveInterval
向客户发送在线消息的间隔(秒数)。缺省是“0”,表示不向客户发送在线消息。该选项只支持SSH 版本2。
Compression
指定用户认证成功以前,是否允许压缩或延迟。该参数只能是“yes”、“delayed”或者“no”,缺省是“delayed”。
DenyGroups
参考AllowGroups选项。
DenyUsers
参考AllowUsers选项。
ForceCommand
指定运行的命令,客户提交的和~/.ssh/rc文件中的命令被忽略。
GatewayPorts
是否允许远程主机连接本地的转发端口。默认值是"no"。sshd(8) 默认将远程端口转发绑定到loopback地址。这样将阻止其它远程主机连接到转发端口。
"no"表示仅允许本地连接,"yes"表示强制将远程端口转发绑定到统配地址(wildcard address),"clientspecified"表示允许客户端选择将远程端口转发绑定到哪个地址。
GSSAPIAuthentication
是否允许使用基于 GSSAPI 的用户认证。默认值为"no"。仅用于SSH-2。
GSSAPICleanupCredentials
指定用户退出登录后是否自动销毁用户凭证缓存。默认值是"yes"。仅用于SSH-2。
HostbasedAuthentication
这个指令与 RhostsRSAAuthentication 类似,但是仅可以用于SSH-2。推荐使用默认值"no"。推荐使用默认值"no"禁止这种不安全的认证方式。
HostbasedUsesNameFromPacketOnly
在开启 HostbasedAuthentication 的情况下,指定服务器在使用 ~/.shosts ~/.rhosts
/etc/hosts.equiv 进行远程主机名匹配时,是否进行反向域名查询。"yes"表示 sshd(8) 信任客户端提供的主机名而不进行反向查询。默认值是"no"。
HostKey
主机私钥文件的位置。如果权限不对,sshd(8) 可能会拒绝启动。SSH-1默认是
/etc/ssh/ssh_host_key 。SSH-2默认是 /etc/ssh/ssh_host_rsa_key 和
/etc/ssh/ssh_host_dsa_key 。
一台主机可以拥有多个不同的私钥。"rsa1"仅用于SSH-1,"dsa"和"rsa"仅用于SSH-2。
IgnoreRhosts
是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 过程中忽略 .rhosts 和 .shosts 文件。不过 /etc/hosts.equiv 和 /etc/shosts.equiv 仍将被使用。推荐设为默认值"yes"。
IgnoreUserKnownHosts
是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 过程中忽略用户的
~/.ssh/known_hosts 文件。默认值是"no"。为了提高安全性,可以设为"yes"。
KerberosAuthentication
是否要求用户为 PasswordAuthentication 提供的密码必须通过 Kerberos KDC 认证,也就是是否使用Kerberos认证。要使用Kerberos认证,服务器需要一个可以校验 KDC identity 的 Kerberos servtab 。
默认值是"no"。
KerberosGetAFSToken
如果使用了 AFS 并且该用户有一个 Kerberos 5 TGT,那么开启该指令后,将会在访问用户的家目录前尝试获取一个 AFS token 。默认为"no"。
KerberosOrLocalPasswd
红烧牛肉的做法大全如果 Kerberos 密码认证失败,那么该密码还将要通过其它的认证机制(比如 /etc/passwd)。默认值为"yes"。
KerberosTicketCleanup
是否在用户退出登录后自动销毁用户的 ticket 。默认值是"yes"。
KeyRegenerationInterval
在SSH-1协议下,短的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。设为 0 表示永不重新生成,默认为 3600(秒)。
ListenAddress
指定 sshd(8) 监听的网络地址,默认监听所有地址。可以使用下面的格式:
ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port
如果未指定 port ,那么将使用 Port 指令的值。可以使用多个 ListenAddress 指令监听多个地址。
LoginGraceTime
限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。
LogLevel
指定 sshd(8) 的日志等级(详细程度)。可用值如下:
QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3 DEBUG
与 DEBUG1 等价;DEBUG2 和 DEBUG3 则分别指定了更详细、更罗嗦的日志输出。比 DEBUG 更详细的日志可能会泄漏用户的敏感信息,因此反对使用。
MACs
指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验。可以使用逗号分隔的列表来指定允许使用多个算法。默认值(包含所有可以使用的算法)是:
hmac-md5,hmac-sha1,umac-64@openssh,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
Match
引入一个条件块。块的结尾标志是另一个 Match 指令或者文件结尾。如果 Match 行上指定的条件都满足,那么随后的指令将覆盖全局配置中的指令。
Match 的值是一个或多个"条件-模式"对。可用的"条件"是:User, Group, Host, Address 。只有下列指令可以在 Match 块中使用:AllowTcpForwarding, Banner,ForceCommand, GatewayPorts, GSSApiAuthentication,KbdInteractiveAuthentication,
KerberosAuthentication,PasswordAuthentication, PermitOpen,
PermitRootLogin,RhostsRSAAuthentication, RSAAuthentication,
X11DisplayOffset,X11Forwarding, X11UseLocalHost
MaxAuthTries
指定每个连接最大允许的认证次数。默认值是 6 。如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息。
MaxStartups
最大允许保持多少个未认证的连接。默认值是 10 。到达限制后,将不再接受新连接,除非先前的连接认证成功或超出 LoginGraceTime 的限制。
PasswordAuthentication
是否允许使用基于密码的认证。默认为"yes"。
PermitEmptyPasswords
是否允许密码为空的用户远程登录。默认为"no"。
PermitOpen
指定TCP端口转发允许的目的地,可以使用空格分隔多个转发目标。默认允许所有转发请求。
合法的指令格式如下:
PermitOpen host:port
PermitOpen IPv4_addr:port
PermitOpen [IPv6_addr]:port
"any"可以用于移除所有限制并允许一切转发请求。
PermitRootLogin
是否允许 root 登录。可用值如下:
"yes"(默认) 表示允许。"no"表示禁止。
"without-password"表示禁止使用密码认证登录。
"forced-commands-only"表示只有在指定了 command 选项的情况下才允许使用公钥认证登录。同时其它认证方法全部被禁止。这个值常用于做远程备份之类的事情。
PermitTunnel
是否允许 tun(4) 设备转发。可用值如下:
"yes", "point-to-point"(layer 3), "ethernet"(layer 2), "no"(默认)。"yes"同时蕴含着"point-to-point"和"ethernet"。
PermitUserEnvironment
指定是否允许 sshd(8) 处理 ~/.ssh/environment 以及 ~/.ssh/authorized_keys 中的environment= 选项。默认值是"no"。如果设为"yes"可能会导致用户有机会使用某些机制(比如
LD_PRELOAD)绕过访问控制,造成安全漏洞。
PidFile
指定在哪个文件中存放SSH守护进程的进程号,默认为 /var/run/sshd.pid 文件。
Port
读取配置文件失败
指定 sshd(8) 守护进程监听的端口号,默认为 22 。可以使用多条指令监听多个端口。默认将在本机的所有网络接口上监听,但是可以通过 ListenAddress 指定只在某个特定的接口上监听。
PrintLastLog
指定 sshd(8) 是否在每一次交互式登录时打印最后一位用户的登录时间。默认值是"yes"。
PrintMotd
指定 sshd(8) 是否在每一次交互式登录时打印 /etc/motd 文件的内容。默认值是"yes"。
Protocol
指定 sshd(8) 支持的SSH协议的版本号。'1'和'2'表示仅仅支持SSH-1和SSH-2协议。"2,1"表示同时支持SSH-1和SSH-2协议。
PubkeyAuthentication
是否允许公钥认证。仅可以用于SSH-2。默认值为"yes"。
RhostsRSAAuthentication
是否使用强可信主机认证(通过检查远程主机名和关联的用户名进行认证)。仅用于SSH-1。这是通过在RSA认证成功后再检查 ~/.rhosts 或 /etc/hosts.equiv 进行认证的。出于安全考虑,建议使用默认值"no"。
RSAAuthentication杨毅老婆
是否允许使用纯 RSA 公钥认证。仅用于SSH-1。默认值是"yes"。
ServerKeyBits