下面是对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
--转自