sshd服务守护进程配置

2018-01-29 0 By admin

概述

sshd_config – OpenSSH SSH daemon configuration file
sshd服务从此文件中读取配置信息。
1、该配置信息为keyword-argument pairs(关键词-参数对)方式,每行一个。
2、以井号开头的行和空行被解释为注释。
3、如果参数中包含空格,则可以使用双引号(“)括起来。
4、关键词(keyword)不区分大小写,参数(argument)区分大小写。

网络配置

Port 22 监听的端口(可以多次使用)
AddressFamily any 指定使用的地址协议(ipv4|ipv6)
ListenAddress 0.0.0.0 指定绑定的本地地址(多IP时使用)

进程设置

Protocol 2 指定sshd服务使用的协议
HostKey pathfile sshd服务的key
UseDNS yes 是否应该对远程主机名进行反向解析
PidFile pathtopidfile
ChrootDirectory none 认证后指定chroot的目录
UseLogin no 是否在交互式会话的登录过程中使用login
UsePrivilegeSeparation yes 是否让 sshd 通过创建非特权子进程处理接入请求的方法来进行权限分离
PermitUserEnvironment no 是否允许sshd处理 ~/.ssh/environment 以及 ~/.ssh/authorized_keys 中的 environment= 选项
Compression delayed 是否对通信数据进行压缩,还是延迟到认证成功之后再对通信数据进行压缩。
ClientAliveInterval 0 设置一个以秒记的时长,如果超过这么长时间没有收到客户端的任何数据,sshd将通过安全通道向客户端发送一个”alive”消息,并等候应答。ssh v2 有效
ClientAliveCountMax 3 sshd在未收到任何客户端回应前最多允许发送多少个”alive”消息。到达这个上限后,sshd 将强制断开连接、关闭会话。ssh v2 有效
TCPKeepAlive yes 是否向客户端发送 TCP keepalive 消息
ShowPatchLevel no 是否会在标识字符串中显示二进制文件的补丁级别;ssh v1 有效
MaxStartups 10:30:100 指定与SSH守护进程同时进行的未经身份验证的连接的最大数量。 其他连接将被丢弃,直到身份验证成功或LoginGraceTime过期以进行连接。或start:rate:full

日志

SyslogFacility AUTH 将日志归类到指定日志子系统
LogLevel INFO 记录的日志级别

登录连接会话

LoginGraceTime 2m 限制用户必须在指定的时限内认证成功,0 表示无限制
PermitRootLogin yes 是否允许 root 登录
StrictModes yes 接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查
MaxAuthTries 6 每个连接最大允许的认证次数。失败认证的次数超过数值的一半,断开连接,记录日志
MaxSessions 10 指定每个网络连接允许的最大打开会话数。
DenyGroups 拒绝登录的用户组
DenyUsers 拒绝登录的用户
ForceCommand 强制执行指定的命令

证书配置

RSAAuthentication yes 是否允许使用纯 RSA 公钥认证;ssh v1 有效
PubkeyAuthentication yes 是否允许公钥认证;ssh v2 有效
AuthorizedKeysFile .ssh/authorized_keys 存放用户公钥的文件
AuthorizedKeysCommand none 查找用户公钥的程序
AuthorizedKeysCommandRunAs nobody 指定AuthorizedKeysCommand程序的运行用户

主机keys

RhostsRSAAuthentication no 远程主机RSA认证;ssh v1 有效
HostbasedAuthentication no 远程主机公钥认证;ssh v2 有效
IgnoreUserKnownHosts no 是否忽略know_hosts文件
IgnoreRhosts yes 是否忽略rhosts和shosts文件

认证设置

PasswordAuthentication yes 是否允许密码认证
PermitEmptyPasswords no 是否允许密码为空
ChallengeResponseAuthentication no 是否允许质疑-应答(challenge-response)认证
RequiredAuthentications 指定在授权连接之前必须成功的必需验证方法
XAuthLocation 指定xauth程序的完整路径名

Kerberos 认证

KerberosAuthentication no 是否使用Kerberos 认证
KerberosOrLocalPasswd yes Kerberos认证或者其他本地认证机制
KerberosTicketCleanup yes 用户退出后,是否清楚ticket
KerberosGetAFSToken no AFS令牌…
KerberosUseKuserok yes 是否为用户别名检测k5login文件

GSSAPI 认证

GSSAPIAuthentication no 是否使用基于 GSSAPI 的用户认证
GSSAPICleanupCredentials yes 用户退出登录后自动销毁用户凭证缓存
GSSAPIStrictAcceptorCheck yes 确定是否严格限制客户端进行身份验证的GSSAPI接受者的身份。
GSSAPIKeyExchange no 指定是否允许基于GSSAPI的密钥交换

PAM认证、账号管理、会话处理

PAM认证通过ChallengeResponseAuthentication和PasswordAuthentication。

UsePAM yes

转发

AllowAgentForwarding yes 是否允许ssh-agent转发
AllowTcpForwarding yes 是否允许TCP转发
GatewayPorts no 是否允许远程主机连接本地的转发端口
X11Forwarding yes 是否允许进行 X11 转发
X11DisplayOffset 10 X11 转发的第一个可用的显示区(display)数字
X11UseLocalhost yes 是否应当将X11转发服务器绑定到本地loopback地址
PermitTunnel no 是否允许 tun设备转发
PermitOpen 指定允许TCP端口转发的目标

打印信息

PrintMotd yes 是否在每一次交互式登录时打印 /etc/motd 文件的内容
PrintLastLog yes 是否在每一次交互式登录时打印最后一位用户的登录时间
Banner /etc/issue.net 设置Banner信息

配置外部子系统

Subsystem sftp /usr/libexec/openssh/sftp-server

可接受的本地环境变量

AcceptEnv arguments

补充说明

1、关闭SSH反向解析操纵
UseDNS no

2、禁止密码登陆
PasswordAuthentication no

3、禁止root登陆
PermitRootLogin no