数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度
sshd 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
SSH 客户端:finalshell ?xshell ?putty ? secureCRT ? MobaXterm
SSH 服务端:openSSH (Centos 7 默认安装)
①客户端发起连接请求
②服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
③客户端生成密钥对
④客户端用自己的公钥或会话ID,计算出一个值Res,并用服务端的公钥加密
⑤客户端发送加密后的值到服务端,服务端用密钥解密,得到Res
⑥服务端用解密后的Res或者是会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
⑦最终:双方各持有三个密钥,分别为自己的一对公钥、私钥、以及对方的公钥,之后的所有的通讯都会被加密。
每次使用sshd登录到其他主机,双方都会生成一个文件known_hosts把对方主机的公钥在.ssh/known_hosts文件里。
如何确定此台机器就是我要连的机器?
ssh [选项] mcb@192.168.11.9#指定登录用户、目标主机地址作为参数
ssh -p 20?mcb@192.168.11.9?#-p为指定端口
第一次连接服务端机器会询问是否要验证公钥,同意就会自动获取服务端公钥?
验证是否连接正确服务机,可查看服务端的公钥?
?
①建议使用非默认端口22
②禁止使用protocol version 1
③限制可登录用户(白名单)
④设定空闲会话超时时长
⑤利用防火墙设置SSH访问策略
⑥仅监听特定的IP地址、公网、内网
⑦基于口令认证时,使用强密码策略
⑧使用基于密钥的认知
⑨禁止使用空密码
⑩禁止root用户直接登录
11、限制ssh的访问频率和并发在线数
12、经常分析日志分离
服务名称:sshd
服务端主程序:/usr/sbin/sshd ?
服务端配置文件:/etc/ssh/sshd_config?
客户端配置文件:/etc/ssh/ssh_config