服务器(/etc/ssh/sshd_config)
#port 22
指定sshd进程监听的端口号,默认为22.可以使用多条指令监听多个端口。默认在本机的所以网络接口上监听。
#Protocol 2,1
Protocol 2
指定sshd支持的SSH协议的版本号。
#AddressFamily any
设置应当使用哪种地址族。取值为:any(默认),inet(仅IPv4),inet6(仅IPv6)
#ListenAddress 0.0.0.0
#ListenAddress ::
指定监听的本机网络接口地址,默认监听所有的接口地址。
#HostKey /etc/ssh/ssh_host_key #只用于SSH1
#HostKey /etc/ssh/ssh_host_rsa_key #只用于SSH2
#HostKey /etc/ssh/ssh_host_dsa_key #只用于SSH2
主机私钥文件的位置。如果不存在或权限不对,SSH会拒绝启动。
#KeyRegenerationInterval 1h
由SSH1协议使用,表示不断更新的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。这个机制可以尽量减少密钥丢失或者******造成的损失,设为0表示永不重新生成,默认为3600(秒)
#ServerKeyBits 768
指定服务器密钥的长度。仅用于SSH1.默认为768(位)。最小值为512。
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
指定sshd将日志消息通过哪个日志设备(Facility)发送。有效值是DAEMON,USER,AUTH,AUTHPRIV,LOCAL0-LOCAL7。
#LogLevel INFO
指定sshd的日志等级。可用值为:QUIET,FATAL,ERROR,INFO,VERBOSE,DEBUG,DEBUG1,DEBUG2,DEBUG3。
#LoginGraceTime 2m
限制用户必须在指定的时限内认证成功。0表示无限制,默认为120秒。
#PermitRootLogin yes
是否允许Root登录。yes表示允许。
#StrictModes yes
指定是否要求sshd在接受连接请求前对用户主目录和相关的配置文件进行宿主权限的检查。
#MaxAuthTries 6
指定每个连接最大允许的认证次数。默认值是6。
#RSAAuthentication yes
是否允许使用纯RSA公钥认证。仅用于SSH-1。
#PubkeyAuthentication yes
是否允许公钥认证。仅用于SSH-2。
#AuthorizedKeysFile .ssh/authorized_keys
存放用户使用RSA/DSA私钥登录时所对应的公钥文件。
#RhostsRSAAuthentication no
是否使用强可信主机认证(通过检查远程主机名和关联的用户名进行认证)。仅用于SSH-1。
#HostbasedAuthentication no
功能与RhostsRSAAuthentication但是仅可用于SSH-2。
#IgnoreUserKnownHosts no
在RhostsRSAAuthentication 或 HostbasedAuthentication时是否忽略用户的~/.ssh/known_hosts文件。
#IgnoreRhosts yes
在RhostsRSAAuthentication 或 HostbasedAuthentication时是否忽略.rhosts和.shosts文件。
#PermitEmptyPasswords no
是否允许密码为空的用户远程登录。
#ChallengeResponseAuthentication no
是否允许质疑-应答认证。
#PasswordAuthentication yes
是否允许使用基于密码的验证。
#KerberosAuthentication no
是否要求用户为PasswordAuthentication提供的密码必须通过Kerberos KDC认证。
#KerberosOrLocalPasswd yes
如果Kerberos密码认证失败,那么该密码是否还要通过其他的认证机制。
#KerberosTicketCleanup yes
是否在用户退出登录后自动销毁用户的ticket。
#KerberosGetAFSToken no
如果使用了AFS并且该用户有一个Kerberos 5 TGT,那么开启该指令后,将会在访问用户的个人目录前尝试获取一个AFS token。
#GSSAPIAuthentication yes
是否允许使用基于GSSAP的用户认证。仅用于SSH -2。
#GSSAPICleanupCredentials yes
使用基于GSSAPI的用户认证时,是否在用户退出登录后自动销毁用户凭证缓存。
#UsePAM yes
是否使用PAM认证。设为yes时,只有root用户才能运行sshd。
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
指定客户端发送的哪些环境变量将会被传递到会话环境中。只有SSH-2协议支持环境变量的传递。
#AllowTcpForwarding yes
是否允许TCP转发。
#GatewayPorts no
是否允许远程主机连接本地的转发端口。
X11Forwarding yes
是否允许进行X11转发。
X11DisplayOffset 10
指定sshd X11 转发的第一个可用显示区数字。
#X11UseLocalhost yes
是否应当将X11转发服务器绑定到本地loopback地址。
#PrintMotd yes
设置是否在每一次交互式登录时打印/etc/motd文件的内容。
#PrintLastLog yes
设置是否在每一次交互式登录时打印上一次用户的登录时间。
#TCPKeepAlive yes
指定系统是否向客户端发送TCP Keepalive消息。这种消息可以检测到死连接,连接不当关闭,客户端崩溃等异常。
#UseLogin no
是否在交互式会话的登录过程中使用login。
#UsePrivilegeSeparation yes
是否让sshd通过创建非特权子进程处理接入请求的方法来进行权限分离。默认值是yes,此时,认证成功后,将以该认证用户的身份创建另一个子进程。其目的是为了防止通过有缺陷的子进程提升权限,从而使系统更加安全。
#PermitUserEnvironment no
是否允许sshd处理~/.sshd/environment以及~/.ssh/authorized_keys中的environment=选项。
#Compression delayed
是否对通信数据进行加密,还是延迟到认证成功之后再对通信数据加密。
#ClientAliveInterval 0
设置一个以秒为单位的时间,如果超过这么长时间没有收到客户端的任何数据,sshd将通过安全通道向客户端发送一个alive消息,并等候应答。这个选项只对SSH-2有效。0表示不发送。
#ClientAliveCountMax 3
sshd在未收到任何客户端回应前最多允许发送多少个alive消息。
#ShowPatchLevel no
设置是否显示软件补丁编号。
#UseDNS yes
是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。
#PidFile /var/run/sshd.pid
指定在哪个文件中存放SSH守护进程的进程号。
#MaxStartups 10
最大允许保持多少个未认证的连接。
#PermitTunnel no
是否允许tunnel设备转发。
#Banner /some/path
将这个指令指定的文件中的内容在用户进行认证前显示给远程客户。仅用于SSH-2。
Subsystem sftp /usr/libexec/openssh/sftp-server
配置一个外部子系统。仅用于SSH-2。
__________________________________________________________________________
客户端(/etc/ssh/ssh_config)
#Host *
指出一个计算机范围,随后的配置指令只对这个范围内的计算机有效,直到碰到下一个Host指令为止。
#ForwardAgent no
设置与认证代理的连接是否转发给远程计算机。
#ForwardX11 no
使用Xwindow的用户是否想自动的把X11会话通过安全通道和DISPLAY设置重定向到远程主机。不使用图形化界面的计算机就该选择no。
#RhostsRSAAuthentication no
是否使用经过RSA认证的rhosts。
#RSAAuthentication yes
是否允许使用RSA认证。
#PasswordAuthentication yes
设置是否应该使用基于密码的验证。
#HostbasedAuthentication no
是否使用经过公钥认证的rhosts。
############
转载于:https://blog.51cto.com/wfab12/408010