OpenSSH配置文件解析

下面是对SSH配置文件的一些选项的分解说明,ssh_config是OpenSSH客户端的配置文件,sshd_config是OpenSSH服务器端的配置文件。

ssh_config的内容如下:


# This is the ssh client system-wide configuration file. See ssh_config(5) for more information. This file provides defaults for users, and the values can be changed in

# er-user configuration files or on the command line.


# Configuration data is parsed as follows:// 配置选项生效的优先级
# 1. command line options// 命令行选项
# 2. user-specific file// 用户指定文件
# 3. system-wide file// 系统范围的文件
# Any configuration value is only changed the first time it is set. Thus, host-specific definitions should be at the beginning of the configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options. For a comprehensive list of available options, their meanings and defaults, please see the ssh_config(5) man page.


Host *// 使用的计算机范围,'*'表示全部
# ForwardAgent no// 设置连接是否经过验证代理(如果存在)转发给远程计算机
# ForwardX11 no// 设置X11连接是否被自动重定向到安全的通道和显示集
# ForwardX11Trusted yes// 是否允许转发X11会话
# RhostsRSAAuthentication no// 设置是否使用RSA进行rhosts的安全验证
# RSAAuthentication yes// 设置是否使用RSA进行安全验证
# PasswordAuthentication yes// 设置是否需要口令验证
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no// 如果为yes,则交互输入口令时的提示(passphrase/password的提示)信息将被禁止
# CheckHostIP yes// 设置SSH是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask// 如果设置成yes,SSH就不会自动把计算机的密钥加入$HOME/.ssh/known_hosts文件,并且一旦计算机的密匙发生了变化,就拒绝连接
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa// RSA安全验证文件的位置
# IdentityFile ~/.ssh/id_dsa// DSA安全验证文件的位置
# Port 22// 服务器端口
# Protocol 2,1// 使用的SSH协议
# Cipher 3des// 设置加密的方式
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
# EscapeChar ~// 设置Escape(转义)字符
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
SendEnv LANG LC_*// 局部环境变量
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

 

sshd_config的内容如下:

# Package generated configuration file See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22// sshd的监听端口号,默认为22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0// 设置sshd服务绑定的IP地址,0.0.0.0表示侦听所有地址
Protocol 2// 默认只使用2.*版本的SSH协议
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key// SSH2版本的RSA密钥存放位置
HostKey /etc/ssh/ssh_host_dsa_key// SSH2版本的DSA密钥存放位置
HostKey /etc/ssh/ssh_host_ecdsa_key// SSH2版本的ECDSA密钥存放位置
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600// 密钥每隔1小时生成一次
ServerKeyBits 768// SSH服务器密钥的位数

# Logging
SyslogFacility AUTH// 设置sshd发送到syslog所使用的日志类型
// 设置在记录来自sshd的消息时是否给出facility code
LogLevel INFO// syslog日志级别

# Authentication:
LoginGraceTime 120// 设置如果用户不能成功登录,sshd将会在这个配置参数指定的时间过后断开连接(单位为秒)
PermitRootLogin yes// 如果为yes则允许root用户使用ssh登录,为no则表示不允许root进行ssh登录
StrictModes yes// 设置sshd在接受登录请求前是否检查用户的主目录以及rhosts文件的权限和所有者等信息。防止目录和文件设成任何人都有写权限


RSAAuthentication yes// 是否允许RSA验证
PubkeyAuthentication yes// 是否允许公钥验证
AuthorizedKeysFile%h/.ssh/authorized_keys// 公钥文件存放的位置


# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes// 验证时是否使用'~/.rhosts'和'~/.shosts'文件
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no// 设置是否允许用rhosts或/etc/hosts.equiv加上RSA进行安全验证
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes// 设置sshd在进行RhostsRSAAuthentication安全验证时是否信任用户的'~/.ssh/known_hosts'文件

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no// 设置是否允许用空口令登录

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no// 设置是否允许使用提示/应答式认证。sshd支持login.conf文件中定义的所有认证类型

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes// 设置是否需要口令验证,默认为yes

# Kerberos options// Kerneros验证
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options// GSSAPI 验证
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes// 清除验证信息

X11Forwarding yes// 设置sshd是否允许X11转发,默认为允许
X11DisplayOffset 10
PrintMotd no// 设置sshd是否在用户登录时显示/etc/motd中的信息
PrintLastLog yes// 交互式登录时是否输出用户上次登录的日期和时间
TCPKeepAlive yes// TCP活动保持
#UseLogin no// 指定login命令是否可用于交互式登录会话

#MaxStartups 10:30:60
#Banner /etc/issue.net// 设置保存banner信息的文件位置,用户登录后会显示该banner信息

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*// 指定客户端发送的那些环境变量能后复制到当前会话的运行环境(客户端需要设置其配置文件ssh_config中的SendEnv参数)

Subsystem sftp /usr/lib/openssh/sftp-server// 用于配置一个外部的服务程序,如文件传输服务器sftp-server。配置参数的值应该是一个系统名与命令,能够基于客户系统的请求开始运行。sftp-server命令实现了sftp文件传输子系统。这个配置参数仅使用与SSH2

# 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// 是否启用PAM插件式认证模块,默认为yes

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ubuntu中,sshd文件指的是OpenSSH服务器的配置文件,负责配置和管理ssh服务。该文件通常位于/etc/ssh/sshd_config路径下。以下是对sshd文件的解析: 1. Port:此选项用于指定sshd服务监听的端口号,默认为22。可以更改默认端口以提高安全性。 2. ListenAddress:用于指定监听的IP地址。可以指定具体的IP地址或者使用“*”来监听所有IPv4地址。 3. PermitRootLogin:此选项用于指定是否允许Root用户通过ssh登录,默认为“prohibit-password”,即禁止使用密码登录。可以使用“no”禁止Root用户登录或者使用“yes”允许Root用户登录。 4. PasswordAuthentication:此选项用于指定是否通过密码进行认证,默认为“yes”。可以将其设置为“no”以禁用密码认证,只允许使用公钥认证。 5. PubkeyAuthentication:用于指定是否允许使用公钥进行认证,默认为“yes”。如果设置为“no”,则不允许使用公钥认证。 6. AuthorizedKeysFile:用于指定存储用户公钥的文件路径,默认为“~/.ssh/authorized_keys”。可以修改成其他路径来存储公钥。 7. PermitEmptyPasswords:此选项用于指定是否允许空密码进行认证,默认为“no”。将其设置为“yes”可以允许空密码进行认证。 8. UsePAM:此选项用于指定是否启用PAM(Pluggable Authentication Modules)认证,默认为“yes”。启用PAM认证可以实现更灵活的用户认证。 9. MaxAuthTries:用于指定ssh登录时最多尝试次数,默认为6。如果超过指定次数登录失败,将会被拒绝。 10. ClientAliveInterval和ClientAliveCountMax:这两个选项用于设置ssh连接的空闲超时时间和最大检测次数。ClientAliveInterval表示每隔多长时间服务器向客户端发送一次保活消息,默认为0(禁用)。ClientAliveCountMax表示在没有收到客户端的保活消息后最多允许尝试的次数,默认为3。 以上是对Ubuntu的sshd文件的一些常见选项进行的解析,通过修改这些选项可以实现对ssh服务的个性化配置和安全加固。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值