CentOS 7 下/etc/ssh/sshd_config 文件解释

这篇具有很好参考价值的文章主要介绍了CentOS 7 下/etc/ssh/sshd_config 文件解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CentOS 7 下/etc/ssh/sshd_config 文件详解

SSH由客户端和服务端的软件组成,在客户端可以使用的软件有SecureCRT、putty、Xshell等,而在服务器端运行的是一个sshd的服务,通过使用SSH,可以把所有传输的数据进行加密,而且也能够防止dns和IP欺骗,此外,SSH传输的数据是经过压缩的,可以加快传输速度,其服务器端的配置文件为/etc/ssh/sshd_config。以下为sshd_config学习记录。

[root@localhost ~]# cat /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.    
# 这是 sshd 服务器系统范围的配置文件。 有关更多信息,请参见sshd_config(5)。   

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin    
# 这个 sshd 是用 PATH=/usr/local/bin:/usr/bin 编译的。

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.
# 用于 OpenSSH 附带的默认sshd_config中的选项的策略是在可能的情况下使用默认值指定选项,但保留注释。 未注释的选项将覆盖默认值。

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
# 如果要更改 SELinux 系统上的端口,则必须将此更改告知 SELinux。

# 1、关于 SSH Server 的整体设定,包含使用的 port 、ip地址
#Port 22                    # SSH 预设使用 22 这个 port,也可以使用其他 port
#AddressFamily any
#ListenAddress 0.0.0.0     
#ListenAddress ::          # 监听的主机适配卡!举个例子来说,如果您有两个 IP,
              # 分别是 192.168.0.100 及 192.168.2.20 ,那么只想要开放 192.168.0.100 时,
              # 就可以写如同下面的样式:ListenAddress 192.168.0.100
                           # 只监听来自 192.168.0.100 这个 IP 的SSH联机,如果不使用设定的话,则预设所有接口均接受 SSH

# 2. 说明主机的 Private Key 放置的档案,预设使用下面的档案即可!
HostKey /etc/ssh/ssh_host_rsa_key            # SSH version 2 使用的 RSA 私钥
#HostKey /etc/ssh/ssh_host_dsa_key           # SSH version 2 使用的 DSA 私钥
HostKey /etc/ssh/ssh_host_ecdsa_key          #用ecdsa加密方式生成ssh密钥
HostKey /etc/ssh/ssh_host_ed25519_key        #用ed25519加密方式生成ssh密钥

# Ciphers and keying            #密码和密钥
#RekeyLimit default none

# 3. 关于登录文件的讯息数据放置与 daemon 的名称!
# Logging
#SyslogFacility AUTH                 # 当有人使用 SSH 登入系统的时候,SSH会记录资讯,这个信息要记录在什么 daemon name 底下?
                   # 预设是以 AUTH 来设定的,即是 /var/log/secure 里面!
                   # 其它可用的 daemon name 为:DAEMON,USER,AUTH,LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,
SyslogFacility AUTHPRIV
#LogLevel INFO                       # 记录登录的等级!任何信息!


# 4. 安全设定项目!重要!
# Authentication:     # 认证:

# 4.1 登入设定部分
#LoginGraceTime 2m
PermitRootLogin no    # PermitRootLogin参数指定root用户是否可以使用ssh登录。 建议设置为 no。
#StrictModes yes      # 当使用者的 host key 改变之后,Server 就不接受联机,可以抵挡部分的木马程序!
MaxAuthTries 4        # MaxAuthTries参数指定每个连接允许的最大验证尝试次数。 当登录失败次数达到设置的一半时,错误消息将被写入syslog文件详细记录登录失败。
#MaxSessions 10       # 最大会话数

#PubkeyAuthentication yes    # 公钥身份验证,默认yes。

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2    # 默认设置是同时选中两者 .ssh/authorized_keys 和 .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys   # 但这被覆盖,因此安装只会检查 .ssh/authorized_keys
AuthorizedKeysFile      .ssh/authorized_keys                                     # 授权密钥文件  .ssh/authorized_keys

#AuthorizedPrincipalsFile none           # 授权主体文件 none

#AuthorizedKeysCommand none              # 授权密钥命令 none
#AuthorizedKeysCommandUser nobody        # 授权密钥命令用户 nobody

# 4.2 认证部分
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts    # 为此,您还需要 /etc/ssh/ssh_known_hosts 中的主机密钥
#HostbasedAuthentication no    # 基于主机的身份验证,HostbasedAuthentication参数指定身份验证是否允许。默认值为 no。
# Change to yes if you don't trust ~/.ssh/known_hosts for          # 如果您不信任 ~/.ssh/known_hosts 的 Hostbased身份验证,请更改为 yes
# HostbasedAuthentication
#IgnoreUserKnownHosts no       # 忽略用户已知主机
# Don't read the user's ~/.rhosts and ~/.shosts files             # 不要读取用户的 ~/.rhosts 和 ~/.shosts 文件
#IgnoreRhosts yes              # 忽略主机

# To disable tunneled clear text passwords, change to no here!    # 要禁用隧道明文密码,请在此处更改为否!
PasswordAuthentication yes    # 密码身份验证,设置为yes
PermitEmptyPasswords no       # 允许空密码,设置为no

# Change to no to disable s/key passwords    # 更改为否以禁用 s/key 密码
#ChallengeResponseAuthentication yes         # 质询响应身份验证
ChallengeResponseAuthentication no

# 4.3 与 Kerberos 有关的参数设定!没有 Kerberos 主机不用设定!
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#KerberosUseKuserok yes

# 与 GSSAPI 有关的参数设定,指定是否允许基于GSSAPI的用户认证,仅适用于SSH2,GSSAPI 是一套类似 Kerberos 5 的通用网络安全系统接口。
# GSSAPI options
GSSAPIAuthentication yes            # GSSAPI认证,指定是否允许基于GSSAPI的用户认证
GSSAPICleanupCredentials no         # GSSAPI清理凭据,设置是否在用户退出登录是自动销毁用户的凭证缓存
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no               # GSSAPI 密钥交换
#GSSAPIEnablek5users no

# 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".
# 将其设置为“是”以启用 PAM 身份验证、帐户处理和会话处理。如果启用此功能,将允许通过质询响应身份验证和密码身份验证进行 PAM 身份验证。 
# 根据您的 PAM 配置,通过 ChallengeResponseAuthentication 进行的 PAM 身份验证可能会绕过“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.
# 如果您只希望 PAM 帐户和会话检查在没有 PAM 身份验证的情况下运行,请启用此选项,
#但将 PasswordAuthentication 和 ChallengeResponseAuthentication 设置为“no”。
#警告:“UsePAM no”在 Red Hat Enterprise Linux 中不受支持,可能会导致多个问题。

UsePAM yes    # 设置是否通过PAM验证

#AllowAgentForwarding yes
#AllowTcpForwarding yes    # 设置是否允许允许tcp端口转发,保护其他的tcp连接
#GatewayPorts no
X11Forwarding yes          # 设置是否允许X11转发
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes        #PrintMotd 用来设置sshd是否在用户登录时显示“/etc/motd”中的信息,可以选在在“/etc/motd”中加入警告的信息
#PrintLastLog yes     #PrintLastLog 是否显示上次登录信息
#TCPKeepAlive yes     #TCPKeepAlive 是否持续连接,设置yes可以防止死连接
                      #一般而言,如果设定这项目的话,那么 SSH Server 会传送 KeepAlive 的讯息给 Client 端,以确保两者的联机正常!
                      #这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。在这个情况下,任何一端死掉后, SSH 可以立刻知道,而不会有僵尸程序的发生!
#UseLogin no    #UseLogin 设置是否在交互式会话的登录过程中使用。默认值是"no"。
                # 如果开启此指令,那么X11Forwarding 将会被禁止,因为login不知道如何处理 xauth cookies 。
                # 需要注意的是,在SSH底下本来就不接受 login 这个程序的登入,如果指UsePrivilegeSeparation ,那么它将在认证完成后被禁用。
#UsePrivilegeSeparation sandbox
#PermitUserEnvironment no
#Compression delayed
ClientAliveInterval 300        # 客户端存活间隔,ClientAliveInterval变量设置时,在指定时间内没有活动的ssh会话将终止。
ClientAliveCountMax 3          # 最大活动客户端计数,ClientAliveCountMax变量设置时,sshd将在每个ClientAliveInterval间隔发送客户端alive的消息。
                                 sshd在未收到任何客户端回应前最多允许发送多少个"alive"消息,到达这个上限后ssh会话将被终止。
                               # 例如,如果ClientAliveInterval设置为15,ClientAliveCountMax设置为3,那么无应答的客户端会在45秒后被强制断开。
#ShowPatchLevel no
#UseDNS yes                    # DNS解析,用ssh登录服务器,发现登录缓慢,可以设置为 no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# 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 指定客户端发送的哪些环境变量将会被传递到会话环境中。
##注意:只有SSH-2协议支持环境变量的传递。指令的值是空格分隔的变量名列表(其中可以使用'*'和'?'作为通配符)。
####也可以使用多个 AcceptEnv 达到同样的目的。需要注意的是,有些环境变量可能会被用于绕过禁止用户使用的环境变量。
#####由于这个原因,该指令应当小心使用。默认是不传递任何环境变量。

# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server

# 以下选项可用于限制哪些用户和组可以通过SSH访问系统。
AllowUsers root user01        # AllowUsers变量为系统管理员提供允许特定用户通过ssh进入系统的选项。
#AllowGroups <grouplist>      # AllowGroups变量为系统管理员提供允许特定用户组的用户通过ssh进入系统的选项。
#DenyUsers <userlist>         # DenyUsers变量为系统管理员提供拒绝特定用户通过ssh进入系统的选项。
#DenyGroups <grouplist>       # DenyGroups变量为系统管理员提供拒绝特定用户组的用户通过ssh进入系统的选项。

Ciphers aes256-ctr,aes192-ctr,aes128-ctr    # 此变量限制SSH在通信期间可以使用的密码类型。

MACs hmac-sha2-512,hmac-sha2-256            # 此变量限制SSH在通信期间可以使用的MAC算法的类型。

参考连接:https://blog.51cto.com/lookingdream/1826618文章来源地址https://www.toymoban.com/news/detail-508414.html

到了这里,关于CentOS 7 下/etc/ssh/sshd_config 文件解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • <Linux>《OpenSSH 客户端配置文件ssh_config详解》

    除非另有说明,对于每个参数,将使用第一个获得的值。配置文件包含由 Host 规范分隔的部分,该部分仅应用于与规范中给出的模式之一匹配的主机。匹配的主机名通常是命令行中给出的名称(请参阅 CanonicalizeHostname 选项以了解异常情况)。 由于使用了每个参数的第一个获得的

    2024年02月07日
    浏览(53)
  • sshd_conf 配置文件详解

      /etc/ssh/sshd_config配置文件内容详解。 Port 22 设置SSHD监听端口号。 SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项! 例如想要开放SSHD端口为 22和222,则多加一行内容为: Port 222 即可。 然后重新启动SSHD这样就好了。 建议大家修改 port number 为其它端

    2024年02月04日
    浏览(143)
  • ssh之 ~/.ssh/config 配置文件实现

    参考 最常用的登陆方法是** ssh username@server -p port ** 通过 ~/.ssh/confg 配置文件,实现免密、更改名称的登陆方法,不论你的username、server address、port是什么,都可以不用输入,只需要输入一个替换的名称即可登陆该服务器。像这样 ssh any name here 1、将公钥 rsa.pub 上传到服务器 使

    2024年02月12日
    浏览(37)
  • ssh(sshd)安全配置

    如需转载请标明出处:http://blog.csdn.net/itas109 技术交流:129518033 sshd服务的配置文件位置 /etc/ssh/sshd_config 修改为(以12322端口为例) 修改为(以192.168.1.101为例) 默认为 PermitRootLogin yes 修改为 4. 禁止使用空密码 修改为 修改为(以600秒为例) License License under CC BY-NC-ND 4.0: 署名

    2024年02月12日
    浏览(62)
  • Linux 系统中etc/passwd文件详解

    在 Linux 系统中,每个用户都有一个对应的 /etc/passwd 文件中的记录行。这个文件对所有用户都是可读的,它记录了每个用户的一些基本属性信息。 本文将详细介绍 /etc/passwd 文件的语法、实操和各个字段的含义,以及一些关键的命令操作。 每个 /etc/passwd 文件中的记录行由冒号

    2024年02月10日
    浏览(32)
  • Linux更改SSH端口,并解决SSHD服务重启失败的问题

    环境:Linux Centos 7 1.进入sshd配置文件: vi /etc/ssh/sshd_config 2、找到“#Port 22”这行,删掉注释符#,将端口改为(想要变成的端口号 如:2022): 3.重启sshd服务: 可能会出现以下报错内容: 原因是SELinux(Linux的一个安全子系统)拒绝了本次重启。只需临时将SELinux防火墙关闭即

    2024年02月16日
    浏览(36)
  • 在gitlab中使用gitlab-sshd替换ssh服务

    在gitlab15.9之后,gitlab-sshd成为了gitlab的服务组件之一,从而使得open-ssh不再是必需品,本篇主要讲配置。 启用gitlab-sshd git url地址指向2222端口 reconfigure 需要清理下本地的know_hosts文件,然后测试。

    2024年01月19日
    浏览(28)
  • 工作随记2:Linux更改SSH端口,并解决SSHD服务重启失败的问题

    环境:Linux Centos 7 1.进入sshd配置文件:  2、找到“#Port 22”这行,删掉注释符#,将端口改为2022: 3.重启sshd服务: 可能会出现以下报错内容: Job for sshd.service failed because the control process exited with error code.See \\\"systemctI status sshd.service\\\" and \\\"journalctI -xe\\\" for details. 原因是SELinux(Lin

    2024年02月13日
    浏览(29)
  • ubuntu20.04/etc/resolv.conf 语法语义解释

    在 Ubuntu 20.04 中,`/etc/resolv.conf` 文件的语法和语义有一些变化。在该版本中,`/etc/resolv.conf` 文件不再直接用于配置 DNS 解析器,而是由 `systemd-resolved` 服务动态生成和管理。 `/etc/resolv.conf` 文件中的内容通常会被 `systemd-resolved` 自动生成,并包含以下注释行: ``` # This file is m

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包