SSH的英文全称是SecureShell。
SSH是一种协议,有版本1和版本2。版本1很不安全。配置文件在/etc/ssh/中,其中ssh_config是客户端的配置文件,sshd_config是服务器端的配置文件。
ssh还能实现端口转发的功能。ssh可以远程转发邮件,但是远程服务器必须有一个用户账号。
它的安全不仅体现在是加密通信的,而且可以实现认证。有主机认证和用户认证。用户认证分为三类:基于口令的认证;基于密钥的认证;基于主机的认证(十分不安全,所以很少用)
如何实现主机认证呢?当双方试图建立通信时,尤其是客户端连接服务端时,服务端用主机私钥加密去加密一段数据,并把数据发送给客户端,此时,客户端试图从自己的某个文件中找到和这个私钥匹配的公钥去解密这段数据。
用户的公钥都放在~/.ssh/known_hosts
~/.ssh/unknown_hosts
客户端生成一对密钥对,私钥自己保存,把公钥发给服务器的
ssh的配置文件:
首先看服务端的配置文件:其中加#号的表示是默认值。#号后不带空格的表示可启用的选项,带空格的表示是纯注释。会话密钥每隔一段时间会更换(默认是1小时)。
/etc/ssh/sshd_config
     #PermitRootLogin yes更换为no。不允许以root身份登陆。
#StrictModes yes  检查用户家目录权限,如果家目录权限不是全局可写,就不能登陆
#MaxAuthTries 6 密码错误最大重复次数
 
日志都在/var/log/secure里。
QUIET,FATAL,ERROR,INFO,DEBUG,DEBUG2,DEBUG3.
在除了调试时都不要进入DEBUG级别,因为日志中会记录密码等隐私信息。
AllowUsers/AllowGroups 白名单
DenyUsers/DenyGroups  黑名单
如果两个名单不冲突,则以allow为准,要是两个都定义同一个用户,则为拒绝。因为拒绝的优先级比允许的高。   
客户端配置文件/etc/ssh/ssh_config               
服务器进程在/usr/sbin/sshd下,netstat –tnlp查看22号端口是否被监听