精华内容
下载资源
问答
  • sshd默认从 /etc/ssh/sshd_config 文件(或通过 -f 命令行选项指定的文件)读取配置信息。配置文件是由"指令 值"对组成的,每行一个。空行和以'#'开头的行都将被忽略。如果值中含有空白符或者其他特殊符号,那么可以...
  • sshd_config

    2016-11-02 18:07:11
    虚拟机中配置sshd_config,使更好版本ubutnu也可以使用xshell.fpt
  • 不幸的是, sshd_config文件的解析器无法检测到错误输入的配置选项或设置,这些配置选项或设置可能会让您的系统对攻击者开放。 sshd-lint检查sshd_config文件是否符合安全性最佳实践。 它警告有关重复的配置行,...
  • sshd_config配置详解

    2020-07-17 11:05:06
    sshd_config配置详解 名称 sshd_config - OpenSSH SSH 服务器守护进程配置文件 大纲 /etc/ssh/sshd_config 描述 sshd(8) 默认从 /etc/ssh/sshd_config 文件(或通过 -f 命令行选项指定的文件)读取配置信息。 配置文件...

    https://www.cnblogs.com/wangliangblog/p/6226488.html

    sshd_config配置详解

    名称
    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(8) 应当使用哪种地址族。取值范围是:“any”(默认)、“inet”(仅IPv4)、“inet6”(仅IPv6)。

    AllowGroups
    这个指令后面跟着一串用空格分隔的组名列表(其中可以使用"*“和”?“通配符)。默认允许所有组登录。
    如果使用了这个指令,那么将仅允许这些组中的成员登录,而拒绝其它所有组。
    这里的"组"是指"主组”(primary group),也就是/etc/passwd文件中指定的组。
    这里只允许使用组的名字而不允许使用GID。相关的 allow/deny 指令按照下列顺序处理:
    DenyUsers, AllowUsers, DenyGroups, AllowGroups

    AllowTcpForwarding
    是否允许TCP转发,默认值为"yes"。
    禁止TCP转发并不能增强安全性,除非禁止了用户对shell的访问,因为用户可以安装他们自己的转发器。

    AllowUsers
    这个指令后面跟着一串用空格分隔的用户名列表(其中可以使用"*“和”?"通配符)。默认允许所有用户登录。
    如果使用了这个指令,那么将仅允许这些用户登录,而拒绝其它所有用户。
    如果指定了 USER@HOST 模式的用户,那么 USER 和 HOST 将同时被检查。
    这里只允许使用用户的名字而不允许使用UID。相关的 allow/deny 指令按照下列顺序处理:
    DenyUsers, AllowUsers, DenyGroups, AllowGroups

    AuthorizedKeysFile
    存放该用户可以用来登录的 RSA/DSA 公钥。
    该指令中可以使用下列根据连接时的实际情况进行展开的符号:
    %% 表示’%’、%h 表示用户的主目录、%u 表示该用户的用户名。
    经过扩展之后的值必须要么是绝对路径,要么是相对于用户主目录的相对路径。
    默认值是".ssh/authorized_keys"。

    Banner
    将这个指令指定的文件中的内容在用户进行认证前显示给远程用户。
    这个特性仅能用于SSH-2,默认什么内容也不显示。"none"表示禁用这个特性。

    ChallengeResponseAuthentication
    是否允许质疑-应答(challenge-response)认证。默认值是"yes"。
    所有 login.conf(5) 中允许的认证方式都被支持。

    Ciphers
    指定SSH-2允许使用的加密算法。多个算法之间使用逗号分隔。可以使用的算法如下:
    “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”,
    “3des-cbc”, “arcfour128”, “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”
    默认值是可以使用上述所有算法。

    ClientAliveCountMax
    sshd(8) 在未收到任何客户端回应前最多允许发送多少个"alive"消息。默认值是 3 。
    到达这个上限后,sshd(8) 将强制断开连接、关闭会话。
    需要注意的是,"alive"消息与 TCPKeepAlive 有很大差异。
    "alive"消息是通过加密连接发送的,因此不会被欺骗;而 TCPKeepAlive 却是可以被欺骗的。
    如果 ClientAliveInterval 被设为 15 并且将 ClientAliveCountMax 保持为默认值,
    那么无应答的客户端大约会在45秒后被强制断开。这个指令仅可以用于SSH-2协议。

    ClientAliveInterval
    设置一个以秒记的时长,如果超过这么长时间没有收到客户端的任何数据,
    sshd(8) 将通过安全通道向客户端发送一个"alive"消息,并等候应答。
    默认值 0 表示不发送"alive"消息。这个选项仅对SSH-2有效。

    Compression
    是否对通信数据进行加密,还是延迟到认证成功之后再对通信数据加密。
    可用值:“yes”, “delayed”(默认), “no”。

    DenyGroups
    这个指令后面跟着一串用空格分隔的组名列表(其中可以使用"*“和”?“通配符)。默认允许所有组登录。
    如果使用了这个指令,那么这些组中的成员将被拒绝登录。
    这里的"组"是指"主组”(primary group),也就是/etc/passwd文件中指定的组。
    这里只允许使用组的名字而不允许使用GID。相关的 allow/deny 指令按照下列顺序处理:
    DenyUsers, AllowUsers, DenyGroups, AllowGroups

    DenyUsers
    这个指令后面跟着一串用空格分隔的用户名列表(其中可以使用"*“和”?"通配符)。默认允许所有用户登录。
    如果使用了这个指令,那么这些用户将被拒绝登录。
    如果指定了 USER@HOST 模式的用户,那么 USER 和 HOST 将同时被检查。
    这里只允许使用用户的名字而不允许使用UID。相关的 allow/deny 指令按照下列顺序处理:
    DenyUsers, AllowUsers, DenyGroups, AllowGroups

    ForceCommand
    强制执行这里指定的命令而忽略客户端提供的任何命令。这个命令将使用用户的登录shell执行(shell -c)。
    这可以应用于 shell 、命令、子系统的完成,通常用于 Match 块中。
    这个命令最初是在客户端通过 SSH_ORIGINAL_COMMAND 环境变量来支持的。

    GatewayPorts
    是否允许远程主机连接本地的转发端口。默认值是"no"。
    sshd(8) 默认将远程端口转发绑定到loopback地址。这样将阻止其它远程主机连接到转发端口。
    GatewayPorts 指令可以让 sshd 将远程端口转发绑定到非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.com,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
    指定临时服务器密钥的长度。仅用于SSH-1。默认值是 768(位)。最小值是 512 。

    StrictModes
    指定是否要求 sshd(8) 在接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查。
    强烈建议使用默认值"yes"来预防可能出现的低级错误。

    Subsystem
    配置一个外部子系统(例如,一个文件传输守护进程)。仅用于SSH-2协议。
    值是一个子系统的名字和对应的命令行(含选项和参数)。比如"sft /bin/sftp-server"。

    SyslogFacility
    指定 sshd(8) 将日志消息通过哪个日志子系统(facility)发送。有效值是:
    DAEMON, USER, AUTH(默认), LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7

    TCPKeepAlive
    指定系统是否向客户端发送 TCP keepalive 消息。默认值是"yes"。
    这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。
    可以设为"no"关闭这个特性。

    UseDNS
    指定 sshd(8) 是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。默认值为"yes"。

    UseLogin
    是否在交互式会话的登录过程中使用 login(1) 。默认值是"no"。
    如果开启此指令,那么 X11Forwarding 将会被禁止,因为 login(1) 不知道如何处理 xauth(1) cookies 。
    需要注意的是,login(1) 是禁止用于远程执行命令的。
    如果指定了 UsePrivilegeSeparation ,那么它将在认证完成后被禁用。

    UsePrivilegeSeparation
    是否让 sshd(8) 通过创建非特权子进程处理接入请求的方法来进行权限分离。默认值是"yes"。
    认证成功后,将以该认证用户的身份创建另一个子进程。
    这样做的目的是为了防止通过有缺陷的子进程提升权限,从而使系统更加安全。

    X11DisplayOffset
    指定 sshd(8) X11 转发的第一个可用的显示区(display)数字。默认值是 10 。
    这个可以用于防止 sshd 占用了真实的 X11 服务器显示区,从而发生混淆。

    X11Forwarding
    是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。
    如果允许X11转发并且sshd(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。
    那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。
    需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。
    如果启用了 UseLogin ,那么X11转发将被自动禁止。

    X11UseLocalhost
    sshd(8) 是否应当将X11转发服务器绑定到本地loopback地址。默认值是"yes"。
    sshd 默认将转发服务器绑定到本地loopback地址并将 DISPLAY 环境变量的主机名部分设为"localhost"。
    这可以防止远程主机连接到 proxy display 。不过某些老旧的X11客户端不能在此配置下正常工作。
    为了兼容这些老旧的X11客户端,你可以设为"no"。

    XAuthLocation
    指定 xauth(1) 程序的绝对路径。默认值是 /usr/X11R6/bin/xauth

    时间格式
    在 sshd(8) 命令行参数和配置文件中使用的时间值可以通过下面的格式指定:time[qualifier] 。
    其中的 time 是一个正整数,而 qualifier 可以是下列单位之一:
    <无> 秒
    s | S 秒
    m | M 分钟
    h | H 小时
    d | D 天
    w | W 星期

    可以通过指定多个数值来累加时间,比如:
    1h30m 1 小时 30 分钟 (90 分钟)

    文件
    /etc/ssh/sshd_config
    sshd(8) 的主配置文件。这个文件的宿主应当是root,权限最大可以是"644"。

    一天一天的满足,即一天一天的堕落!

    展开全文
  • ssh_configsshd_config区别和一些设置 ssh_configsshd_config都是ssh服务器的配置文件,二者区别在于,ssh_config是针对客户端的配置文件,sshd_config是针对服务端的配置文件。两个配置文件都允许你通过设置...

    ssh_config、sshd_config区别和一些设置

    ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,ssh_config是针对客户端的配置文件,sshd_config是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。
    ssh_config的文件开头
    写着:#This is the ssh client system-wide configuration file.
    sshd_config的文件开头
    写着:# This is the sshd server system-wide configuration file. See sshd_config(5) for more information.

    配置sshd_config

    #Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    **#ListenAddress ::**
    
    #HostKey /etc/ssh/ssh_host_rsa_key
    #HostKey /etc/ssh/ssh_host_ecdsa_key
    #HostKey /etc/ssh/ssh_host_ed25519_key
    
    # Ciphers and keying
    #RekeyLimit default none
    
    # Logging
    #SyslogFacility AUTH
    #LogLevel INFO
    
    # Authentication:
    
    #LoginGraceTime 2m
    **#PermitRootLogin prohibit-password
    PermitRootLogin yes**
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    
    #PubkeyAuthentication yes
    
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.
    #AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2
    
    #AuthorizedPrincipalsFile none
    
    #AuthorizedKeysCommand none
    #AuthorizedKeysCommandUser nobody
    
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
    #HostbasedAuthentication no
    # Change to yes if you don't trust ~/.ssh/known_hosts for
    # HostbasedAuthentication
    #IgnoreUserKnownHosts no
    # Don't read the user's ~/.rhosts and ~/.shosts files
    #IgnoreRhosts yes
    
    # To disable tunneled clear text passwords, change to no here!
    **#PasswordAuthentication yes**
    #PermitEmptyPasswords no
    
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication no
    
    # Kerberos options
    #KerberosAuthentication no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes
    #KerberosGetAFSToken no
    
    # GSSAPI options
    #GSSAPIAuthentication no
    #GSSAPICleanupCredentials yes
    #GSSAPIStrictAcceptorCheck yes
    #GSSAPIKeyExchange 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".
    # 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'.
    UsePAM yes
    
    #AllowAgentForwarding yes
    #AllowTcpForwarding yes
    #GatewayPorts no
    X11Forwarding yes
    #X11DisplayOffset 10
    #X11UseLocalhost yes
    #PermitTTY yes
    PrintMotd no
    #PrintLastLog yes
    #TCPKeepAlive yes
    #UseLogin no
    #UsePrivilegeSeparation sandbox
    #PermitUserEnvironment no
    #Compression delayed
    #ClientAliveInterval 0
    #ClientAliveCountMax 3
    #UseDNS no
    #PidFile /var/run/sshd.pid
    #MaxStartups 10:30:100
    #PermitTunnel no
    #ChrootDirectory none
    #VersionAddendum none
    
    # no default banner path
    #Banner none
    
    # Allow client to pass locale environment variables
    AcceptEnv LANG LC_*
    
    # override default of no subsystems
    Subsystem	sftp	/usr/lib/openssh/sftp-server
    
    # Example of overriding settings on a per-user basis
    #Match User anoncvs
    #	X11Forwarding no
    #	AllowTcpForwarding no
    #	PermitTTY no
    #	ForceCommand cvs server
    

    其中一些粗体表示认证方式,
    其中#PasswordAuthentication yes就是让不让用密码登录。
    如果要取消ssh密码登录需要两项都改成no:
    PasswordAuthentication
    ChallengeResponseAuthentication

    #PermitRootLogin prohibit-password 表示root禁止使用密码登录,只要把注释去掉,重启就能执行
    PermitRootLogin yes 表示root能不能登录。
    千万不要看网上一些文章,把PermitRootLogin改成without-password,这是无密码登录的意思。

    关于UseDNS选项,这里默认是no的,也不需要注释去掉。
    如果打开的话,服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始 IP地址一致,通过此种措施来防止客户端欺骗。平时我们都是动态 IP不会有PTR记录,所以打开此选项也没有太多作用。

    #ListenAddress 0.0.0.0 设置sshd服务器绑定的IP地址。
    这个应该是可以改成自己的ip地址,当然是外网的固定ip。本机如果是局域网内192.168开头的地址只能在局域网内使用,绝不要填到服务器上。除了局域网内服务器,局域网内有必要那么严格的安全控制吗。

    #PubkeyAuthentication yes默认是yes
    不需要去掉注释。我试了一下,去掉注释重启sshd和不去掉都能秘钥登录。

    重启ssh:
    systemctl restart sshd.service

    service sshd restart

    展开全文
  • ssh配置文件ssh_configsshd_config区别

    千次阅读 2019-04-25 00:31:29
    ssh_configsshd_config配置文件区别 远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是?以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较...

    问题描述:在一次配置ssh端口和秘钥登录过程中,修改几次都没有成功。最后发现修改的是ssh.config,原因是习惯tab一下,实在是眼拙!

    ssh_config和sshd_config配置文件区别

     远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是?以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
    
    ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。下面列出来的是两个配置文件中最重要的一些关键词,每一行为“关键词&值”的形式,其中“关键词”是忽略大小写的。
    

    客户端

    1、编辑 /etc/ssh/ssh_config 文件

    Site-wide defaults for various options

    Host *
    ForwardAgent no
    ForwardX11 no
    RhostsAuthentication no
    RhostsRSAAuthentication no
    RSAAuthentication yes
    PasswordAuthentication yes
    FallBackToRsh no
    UseRsh no
    BatchMode no
    CheckHostIP yes
    StrictHostKeyChecking no
    IdentityFile ~/.ssh/identity
    Port 22
    Cipher blowfish
    EscapeChar

    下面对上述选项参数逐进行解释:

    Site-wide defaults for various options

    带“#”表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。

    Host *
    "Host"只对匹配后面字串的计算机有效,“”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换号使下面选项只针对该算机器生效。

    ForwardAgent no
    "ForwardAgent"设置连接是否经过验证代理(如果存在)转发给远程计算机。

    ForwardX11 no
    "ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。

    RhostsAuthentication no
    "RhostsAuthentication"设置是否使用基于rhosts的安全验证。

    RhostsRSAAuthentication no
    "RhostsRSAAuthentication"设置是否使用用RSA算法的基于rhosts的安全验证。

    RSAAuthentication yes
    "RSAAuthentication"设置是否使用RSA算法进行安全验证。

    PasswordAuthentication yes
    "PasswordAuthentication"设置是否使用口令验证。

    FallBackToRsh no
    “FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为"no”。

    UseRsh no
    “UseRsh"设置是否在这台计算机上使用"rlogin/rsh”,原因同上,设为"no"。

    BatchMode no
    “BatchMode”:批处理模式,一般设为"no";如果设为"yes",交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。

    CheckHostIP yes
    “CheckHostIP"设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为"yes”。

    StrictHostKeyChecking no
    “StrictHostKeyChecking"如果设为"yes”,ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。

    IdentityFile ~/.ssh/identity
    "IdentityFile"设置读取用户的RSA安全验证标识。

    Port 22
    "Port"设置连接到远程主机的端口,ssh默认端口为22。

    Cipher blowfish
    “Cipher”设置加密用的密钥,blowfish可以自己随意设置。

    EscapeChar
    “EscapeChar”设置escape字符。

    服务器端

    2、编辑 /etc/ssh/sshd_config 文件:

    This is ssh server systemwide configuration file.

          Port 22
          ListenAddress 192.168.1.1
          HostKey /etc/ssh/ssh_host_key
          ServerKeyBits 1024
          LoginGraceTime 600
          KeyRegenerationInterval 3600
          PermitRootLogin no
          IgnoreRhosts yes
          IgnoreUserKnownHosts yes
          StrictModes yes
          X11Forwarding no
          PrintMotd yes
          SyslogFacility AUTH
          LogLevel INFO
          RhostsAuthentication no
          RhostsRSAAuthentication no
          RSAAuthentication yes
          PasswordAuthentication yes
          PermitEmptyPasswords no
          AllowUsers admin
    

    ?下面逐行说明上面的选项设置:

    Port 22
    "Port"设置sshd监听的端口号。

    ListenAddress 192.168.1.1
    "ListenAddress”设置sshd服务器绑定的IP地址。

    HostKey /etc/ssh/ssh_host_key
    "HostKey”设置包含计算机私人密匙的文件。

    ServerKeyBits 1024
    "ServerKeyBits”定义服务器密匙的位数。

    LoginGraceTime 600
    "LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。

    KeyRegenerationInterval 3600
    "KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。

    PermitRootLogin no
    “PermitRootLogin”设置是否允许root通过ssh登录。这个选项从安全角度来讲应设成"no”。

    IgnoreRhosts yes
    "IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。

    IgnoreUserKnownHosts yes
    “IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的”$HOME/.ssh/known_hosts”

    StrictModes yes
    "StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。

    X11Forwarding no
    "X11Forwarding”设置是否允许X11转发。

    PrintMotd yes
    "PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。

    SyslogFacility AUTH
    "SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。

    LogLevel INFO
    "LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。

    RhostsAuthentication no
    "RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。

    RhostsRSAAuthentication no
    "RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。

    RSAAuthentication yes
    "RSAAuthentication”设置是否允许只有RSA安全验证。

    PasswordAuthentication yes
    "PasswordAuthentication”设置是否允许口令验证。

    PermitEmptyPasswords no
    "PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。

    AllowUsers admin #限定登录的用户名
    "AllowUsers”的后面可以跟任意的数量的用户名的匹配串,这些字符串用空格隔开。主机名可以是域名或IP地址。

    通常情况下我们在连接 OpenSSH服务器的时候假如 UseDNS选项是打开的话,服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始 IP地址一致,通过此种措施来防止客户端欺骗。平时我们都是动态 IP不会有PTR记录,所以打开此选项也没有太多作用。我们可以通过关闭此功能来提高连接 OpenSSH 服务器的速度。
    

    服务端步骤如下:
    编辑配置文件 /etc/ssh/sshd_config
    vim /etc/ssh/sshd_config
    找到 UseDNS选项,如果没有注释,将其注释
    #UseDNS yes
    添加
    UseDNS no

    找到 GSSAPIAuthentication选项,如果没有注释,将其注释
    #GSSAPIAuthentication yes
    添加
    GSSAPIAuthentication no

    保存配置文件

    重启 OpenSSH服务器
    /etc/init.d/sshd restart

    注意:

     一般远程修改ssh端口,建议22端口留着防止修改未成功,连不上都SB了。如果开启防火墙记得添加端口放行!
    

    port 22

    port 2345

    出处:http://xiaochina.cnblogs.com/

    展开全文
  • 索引问题描述解决方案阿里云sshd_config配置文件(附)步骤1:控制台VNC远程连接步骤2:修改配置文件sshd_conf结论 问题描述 博主安装的是ubuntu20.04,配置阿里云服务器,错误修改sshd配置文件,导致无法连接...


    问题描述

    博主安装的是 ubuntu20.04,配置阿里云服务器,错误修改 sshd 配置文件,导致无法连接服务器。ssh 远程连接服务器,提示——登录实例失败,拒绝连接。


    解决方案

    阿里云 sshd_config 配置文件(附)

    步骤 1:控制台 VNC 远程连接

    步骤 2:修改 sshd_conf 配置文件

    快捷键ctrl + alt + t 打开终端,输入sudo vim /etc/ssh/sshd_conf进入配置文件

    #	$OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
    
    # This is the sshd server system-wide configuration file.  See
    # sshd_config(5) for more information.
    
    # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
    
    # 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.
    
    Include /etc/ssh/sshd_config.d/*.conf
    
    #Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    
    #HostKey /etc/ssh/ssh_host_rsa_key
    #HostKey /etc/ssh/ssh_host_ecdsa_key
    #HostKey /etc/ssh/ssh_host_ed25519_key
    
    # Ciphers and keying
    #RekeyLimit default none
    
    # Logging
    #SyslogFacility AUTH
    #LogLevel INFO
    
    # Authentication:
    
    #LoginGraceTime 2m
    #PermitRootLogin prohibit-password
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    
    #PubkeyAuthentication yes
    
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.
    #AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2
    
    #AuthorizedPrincipalsFile none
    
    #AuthorizedKeysCommand none
    #AuthorizedKeysCommandUser nobody
    
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
    #HostbasedAuthentication no
    # Change to yes if you don't trust ~/.ssh/known_hosts for
    # HostbasedAuthentication
    #IgnoreUserKnownHosts no
    # Don't read the user's ~/.rhosts and ~/.shosts files
    #IgnoreRhosts yes
    
    # To disable tunneled clear text passwords, change to no here!
    #PermitEmptyPasswords no
    
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication no
    
    # Kerberos options
    #KerberosAuthentication no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes
    #KerberosGetAFSToken no
    
    # GSSAPI options
    #GSSAPIAuthentication no
    #GSSAPICleanupCredentials yes
    #GSSAPIStrictAcceptorCheck yes
    #GSSAPIKeyExchange 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
    # 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
    # and ChallengeResponseAuthentication to 'no'.
    UsePAM yes
    
    #AllowAgentForwarding yes
    #AllowTcpForwarding yes
    #GatewayPorts no
    X11Forwarding yes
    #X11DisplayOffset 10
    #X11UseLocalhost yes
    #PermitTTY yes
    PrintMotd no
    #PrintLastLog yes
    #TCPKeepAlive yes
    #PermitUserEnvironment no
    #Compression delayed
    #ClientAliveInterval 0
    #ClientAliveCountMax 3
    #UseDNS no
    #PidFile /var/run/sshd.pid
    #MaxStartups 10:30:100
    #PermitTunnel no
    #ChrootDirectory none
    #VersionAddendum none
    
    # no default banner path
    #Banner none
    
    # Allow client to pass locale environment variables
    AcceptEnv LANG LC_*
    
    # override default of no subsystems
    Subsystem	sftp	/usr/lib/openssh/sftp-server
    
    # Example of overriding settings on a per-user basis
    #Match User anoncvs
    #	X11Forwarding no
    #	AllowTcpForwarding no
    #	PermitTTY no
    #	ForceCommand cvs server
    
    
    
    UseDNS no
    AddressFamily inet
    SyslogFacility AUTHPRIV
    PermitRootLogin yes
    PasswordAuthentication yes
    

    结论

    至此,linux ssh 登录实例失败,拒绝连接问题已解决。

    如果服务器当前状态正常,建议将服务器做一份快照备份,以防止后续出现问题可以及时回滚。链接: 创建快照方法.


    展开全文
  • sshd_config配置注释

    2019-09-27 22:40:23
    # $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ # This is the sshd server system-wide configuration file. See# sshd_config(5) for more information. # This sshd was compiled with PA...
  • linux的ssh远程连接协议中的配置文件sshd_config
  • 如果kail系统中没有sshd_config文件,那就是没有安装openssh-server。 执行:sudo apt-get install openssh-server 命令就可以了
  • SSH由客户端和服务端的软件组成,在客户端可以使用的软件有SecureCRT、putty、...其服务器端的配置文件为/etc/ssh/sshd_config [root@test ~]# cat /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.73 200...
  • sshd_config已修改,ssh还是无法远程问题解决
  • SSH配置文件ssh_configsshd_config区别

    千次阅读 2017-05-16 16:07:46
    问题描述:在一次配置ssh端口和秘钥登录过程中,修改几次都没有成功。最后发现修改的是ssh.config,原因是习惯tab...ssh_configsshd_config配置文件区别:  远程管理linux系统基本上都要使用到ssh,原因很简单:t
  • linux ssh_configsshd_config配置文件

    千次阅读 2018-08-23 10:27:14
    ssh_configsshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。 两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。下面列出来的...
  • ubuntu下没有sshd_config无法使用ssh服务

    千次阅读 2020-12-26 18:13:59
    以下分别是Xshell6连接时的截图和虚拟机中的截图,还希望那个大神告知这是怎么回事,也试过用apt-getupdate/install命令了,但是还不行,不知道是怎么回事了,而且我的/etc/ssh/下也没有sshd_config文件,这是为什么...
  • /etc/ssh/sshd_config用过的简单配置 1、禁止root登入 PermitRootLogin no 2、把 SSH 监听端口改为 200 Port 200 3、用户 允许登入 AllowUsers user1 禁止登入 DenyUsers user2 4、组 允许 AllowGroups group3 ...
  • sshd_config默认配置

    2021-10-22 13:20:44
    sshd_config默认配置
  • Port 12022 # 自定义ssh监听端口 PermitRootLogin yes #允许root登录 AuthorizedKeysFile .ssh/authorized_keys #公钥记录存储文件 PasswordAuthentication no #禁止...Subsystem sftp /usr/local/libexec/sftp-server
  •   我在使用sshsecureshell登录ubuntu 20.04时出现错误server responded "algorithm negotiation failed”,然后按照百度到的教程修改了/etc/ssh/sshd_config的配置文件,在文件的最后添加了一段表示加密算法的内容...
  • sshd_config文件不小心删掉还原一波

    千次阅读 2020-03-05 14:27:34
    # $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with ...
  • 3)根据网上查找在centos中修改配置文件/etc/ssh/sshd_config # vi /etc/ssh/sshd_config 添加 Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,...
  • 路径: /etc/ssh/sshd_config ClientAliveInterval 间隔发送客户端ssh心跳alive Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message ...
  • 进入后按O
  • Sshd_config配置文件详解--很实用

    万次阅读 2019-01-22 13:14:24
    ssh是linux远程登录的安全协议,是 C/S 模式的架构,配置文件分为服务器端配置文件 [/etc/ssh/sshd_config] 与客户端配置文件默认配置文件[/etc/ssh/ssh_config] 用户配置文件[~/.ssh/configsshd_config 是...
  • 1. 确认.ssh目录权限必须是700。 地址: ~/.ssh 截图参考: 2.确认authorized_keys文件权限必须是600。 地址: ~/.ssh/authorized_keys .../etc/ssh/sshd_config 截图参考: ...
  • 更改了sshd_config如何立即刷新?

    千次阅读 2020-08-07 09:40:18
    重启sshd服务即可! /etc/init.d/sshd restart ,或者: /etc/rc.d/init.d/sshd restart
  • 修改sshd_config

    万次阅读 2018-06-12 14:59:10
    背景:看到CloudMan6写到,“小窍门:Ubuntu 默认是不允许 root 通过 ssh 直接登录的,可以修改 /etc/ssh/sshd_config,设置”,于是我就去更改设置。 出来的结果是:blahblah blah .. nothing in register.. (小...
  • sshd_config配置

    千次阅读 2018-05-31 17:47:11
    sshd_config配置 详解 2013年11月14日 10:17:12 阅读数:19404 最近,一直再捣鼓LNMP已经Shell脚本方面、以及自动化方面的东西,整理一下发在这里。 1. 关于 SSH Server 的整体设定,包含使用的 port 啦,以及...
  • linux 修改/etc/ssh/sshd_config 权限不够

    千次阅读 2021-01-20 10:23:20
    linux 设置ssh的时候,修改/etc/ssh/sshd_config时,提示:更改"sshd_config"的权限:不允许更改。用vim进去修改时,提示”sshd_config"[只读]。 解决方案:用root用户登录就可以修改了。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,113
精华内容 26,045
关键字:

sshd_config