目录
1. 常用配置项: vim /etc/ssh/sshd_config
一. 什么是SSH
定义:
SSH(Secure Shell):远程连接加密协议,是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
SSH客户端<--------------网络---------------->SSH服务端
优点:
数据传输是加密的,提升信息安全
数据传输是压缩的,可以提高传输速度
服务配置文件:
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
二. ssh传输原理
1. 公钥传输原理
客户端首次发起连接,服务端会生成一个随机会话id,会将服务端的公钥以及会话id发给客户端。
客户端收到会话id以及服务端的公钥,会用客户端自己的公钥以及会话id做运算,产生一个结果,然后再用服务端公钥加密,
再将这个加密结果传给服务端。
服务端收到加密结果后,会用自己的私钥解密,得到客户端的公钥和会话id运算的结果。
因为已知会话id,所以就可以得到客户端的公钥,最后双方持有对面的公钥。
2. 登录
方法一:
命令:ssh 远程主机用户名@远程服务器主机名或ip地址 -p 端口号
方法二:
ssh -l 远程主机用户名 远程服务器主机名或ip地址 -p 端口号
选项:-l 指定登录名称
-p 指定登录端口,当服务端的端口不是默认端口22时,需要用-p指定。
方法三:免密登录设置
三. ssh服务端配置
1. 常用配置项: vim /etc/ssh/sshd_config
①. 修改默认端口
②. 监听地址设置
③. 设置最大失败尝试登录次数
④. 同一个连接最大会话数
⑤. 禁止root用户登录
⑥. 设置白名单黑名单
手动添加:AllowUser test@172.16.234.10 123
允许所有主机访问我的123用户
只允许test 从172.16.234.10上访问
2. ssh服务的最佳实践
①. 建议使用非默认端口 22
②. 禁止使用protocol version 1
③. 限制可登录用户 白名单
④. 设定空闲会话超时时长
⑤. 利用防火墙设置ssh访问策略
⑥. 仅监听特定的IP地址 公网 内网
⑦. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs
⑧. 使用基于密钥的认证
⑨. 禁止使用空密码
⑩. 禁止root用户直接登录
⑪. 限制ssh的访问频度和并发在线数
⑫. 经常分析日志 分离