sshd_config配置说明(顺序来自CentOS)

推荐使用man sshd_config指令获取配置文件详细说明

Port 22                           
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
Protocol 2
/*
Port:sshd服务端口,预设22,也可以开放多个端口
AddressFamily:使用地址族,any(默认)、inet(仅IPv4)、inet6(仅IPv6)
ListenAddress:设置监听的地址
Protocol:SSH协议版本
*/

# HostKey for protocol version 1
HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
/*
主机私钥存放位置
*/

KeyRegenerationInterval 1h
ServerKeyBits 1024
/*
对于SSH-1协议中秘钥的过期时间和大小
*/

# Logging
SyslogFacility AUTH
SyslogFacility AUTHPRIV
LogLevel INFO
/*
SyslogFacility:日志系统选择
LogLevel:日志等级选择
*/

# Authentication:
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
MaxAuthTries 6
MaxSessions 10
/*
LoginGraceTime:限制认证时限
PermitRootLogin:允许ROOT账户登录
StrictModes:检查用户主目录和相关的配置文件
MaxAuthTries:最大认证次数
MaxSessions:最大保持连接数
*/

RSAAuthentication yes
PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
/*
RSAAuthentication:SSH-1公钥认证
PubkeyAuthentication:SSH-2公钥认证
AuthorizedKeysFile:授权秘钥文件
*/

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
/*
RhostsRSAAuthentication:SSH-1强可信主机
HostbasedAuthentication:SSH-2强可信主机
IgnoreUserKnownHosts:认证过程中忽略用户的 ~/.ssh/known_hosts 文件
IgnoreRhosts:认证过程中忽略 .rhosts 和 .shosts 文件
*/

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords no
/*
PasswordAuthentication:使用密码认证
PermitEmptyPasswords:允许密码为空账户登录
*/

# Change to no to disable s/key passwords
ChallengeResponseAuthentication yes
/*
ChallengeResponseAuthentication:是否允许质疑-应答(challenge-response)认证
*/

# Kerberos options
KerberosAuthentication no
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes
KerberosGetAFSToken no
/*
KerberosAuthentication:是否使用Kerberos认证
KerberosOrLocalPasswd:如果 Kerberos 密码认证失败,那么该密码还将要通过其它的认证机制
KerberosTicketCleanup:是否在用户退出登录后自动销毁用户的 ticket
KerberosGetAFSToken:尝试获取一个 AFS token
*/

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
GSSAPIStrictAcceptorCheck yes
/*
GSSAPIAuthentication:是否允许使用基于 GSSAPI 的用户认证
GSSAPICleanupCredentials:是否在用户退出登录后自动销毁用户凭证缓存
GSSAPIStrictAcceptorCheck:是否严格检查GSSAPI的用户认证
*/

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
# WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
# problems.
UsePAM yes
/*
UsePAM:是否使用PAM认证登录
*/

AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts no
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
PermitTTY yes
PrintMotd yes
PrintLastLog yes
TCPKeepAlive yes
UseLogin no
UsePrivilegeSeparation sandbox      # Default for new installations.
PermitUserEnvironment no
Compression delayed
ClientAliveInterval 0
ClientAliveCountMax 3
ShowPatchLevel no
UseDNS yes
PidFile /var/run/sshd.pid
MaxStartups 10:30:100
PermitTunnel no
ChrootDirectory none
VersionAddendum none
/*
AllowAgentForwarding:是否允许转发ssh-agent
AllowTcpForwarding:是否允许TCP转发
GatewayPorts:是否允许远程主机连接本地的转发端口
X11Forwarding:是否允许进行 X11 转发
X11DisplayOffset:指定X11 转发的第一个可用的显示区(display)数字
X11UseLocalhost:是否应当将X11转发服务器绑定到本地loopback地址
PermitTTY:是否允许pty分配
PrintMotd:是否在每一次交互式登录时打印 /etc/motd 文件的内容
PrintLastLog:是否在每一次交互式登录时打印最后一位用户的登录时间
TCPKeepAlive:是否向客户端发送 TCP keepalive 消息
UseLogin:是否在交互式会话的登录过程中使用 login
UsePrivilegeSeparation:是否让 sshd 通过创建非特权子进程处理接入请求的方法来进行权限分离
PermitUserEnvironment:是否允许 sshd处理environment
Compression:是否对通信数据进行加密
ClientAliveInterval:设置一个以秒记的时长,向客户端发送一个”alive”消息,并等候应答
ClientAliveCountMax:sshd 在未收到任何客户端回应前最多允许发送多少个”alive”消息
ShowPatchLevel:是否显示ssh的补丁信息
UseDNS:是否应该对远程主机名进行反向解析
PidFile:pid文件位置
MaxStartups: 指定并发未认证的最大数量节点到SSH守护进程
PermitTunnel:是否允许 tun 设备转发
ChrootDirectory:指定chroot认证的路径名
VersionAddendum:连接时指定附加文本
*/

# no default banner path
Banner none
/*
Banner:将这个指令指定的文件中的内容在用户进行认证前显示给远程用户
*/

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
/*
AcceptEnv:指定客户端发送的哪些环境变量将会被传递到会话环境中
*/

# override default of no subsystems
Subsystem sftp  /usr/libexec/openssh/sftp-server
/*
Subsystem:配置一个外部子系统
*/

NOTE

1、 以上的所有说明配置命令均已去掉‘#’(注释符号),请勿直接copy使用
2、 在修改sshd_config文件时,正确的姿势应该是在原配置文件中找到相关配置添加‘#’注释,再在文件末尾添加配置命令及选项



 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sshd_config是OpenSSH服务的核心配置文件,它定义和控制SSH服务器的身份验证、访问控制、加密选项、会话选项等各种服务细节。掌握sshd_config配置细节对于在Linux服务器上安全运行SSH非常重要。本文将详细分析sshd_config的设置说明配置示例。 sshd_config的主要配置选项包括: 1. Authentication配置选项:这些选项控制SSH客户端连接到服务器时的身份验证过程。包括密码验证、公钥验证、PAM验证等多种认证方法。最常见的配置是将PasswordAuthentication设置为no,使用公钥认证方式替代默认的基于口令的认证方式。 2. Access Control配置选项:通过控制用户和组的访问权限,可以保护服务器免受未经授权的访问。这些选项包括UsePAM、AllowUsers、AllowGroups、DenyUsers、DenyGroups等。 3. Encryption配置选项:这些选项控制传输数据的加密方式和级别。包括Ciphers、MACs、KexAlgorithms等。通常情况下,开启较高强度的加密方式可以提高安全性,但需要更大的计算和网络带宽。 4. Session Options配置选项:这些选项控制每个SSH会话的行为方式。例如,ClientAliveInterval、ClientAliveCountMax可以控制客户端空闲连接断开的时间和次数;PermitTTY、ForceCommand、ChrootDirectory可以控制用户建立会话时的环境和限制。 除了上述四个主要配置选项外,还有许多其他选项。例如,PrintMotd、Banner、LogLevel、HostKey等,可以控制服务器运行时的日志输出、欢迎消息、主机密钥等。 使用sshd_config最好的方式是熟悉每个选项的含义,并选择适当的设置来满足具体的需求。可以访问OpenSSH的官方文档,查看每个选项的含义和设置说明。最好的实践是根据自己的环境和需求,进行针对性的配置和测试,以确保服务器的安全性和高效性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值