目录
一.ssh服务基础
1.ssh服务简介
2.ssh服务原理
二.ssh服务应用
1.ssh配置文件
2.ssh连接验证
三.ssh服务端
1.修改默认端口号
2.免密连接登录
3.禁止root用户登录
4.ssh服务的最佳实践
一.ssh服务基础
1.ssh服务简介
SSH:是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输。
优点:
-
数据传输是加密的,可以防止信息泄漏
-
数据传输是压缩的,可以提高传输速度
软件名:openssh
服务名:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
2.ssh服务原理
- 客户端发起连接请求
- 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
- 客户端生成密钥对
- 客户端用自己的公钥异或会话ID(异或是算法,有很多种),计算出一个值Res,并用服务端的公钥加密
- 客户端发送加密值到服务端,服务端用私钥解密,得到Res
- 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
- 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
二.ssh服务应用
1.ssh配置文件
2.ssh连接验证
三.ssh服务端
1.修改默认端口号
2.免密连接登录
命令:ssh-keygen
注意:这里的免密登录是单向的,如需双方都能免密登录,服务端也需要进行一次公钥传输。
3.禁止root用户登录
配置文件:/etc/ssh/sshd_config
注意:注意虽然阻止了root 但是普通用户可以先登录再使用su切换成root
4.ssh服务的最佳实践
-
建议使用非默认端口 22
-
禁止使用protocol version 1
-
限制可登录用户 白名单
-
设定空闲会话超时时长
-
利用防火墙设置ssh访问策略
-
仅监听特定的IP地址 公网 内网
-
基于口令认证时,使用强密码策略
-
使用基于密钥的认证
-
禁止使用空密码
-
禁止root用户直接登录
-
限制ssh的访问频度和并发在线数
-
经常分析日志 分离
-
禁止反向dns