SSH 22"/>
SSH 22
SSH远程登录协议
一.SSH服务
1.SSH基础
SSH服务器
SSH是一种安全通道协议,主要用于字符界面的远程登录,控制等,SSH协议会对双方通信数据进行加密,包括用户登录输入的口令,SSH是建立在应用层和传输层基础上的安全协议,对数据有着加密,压缩的优点,安全快速。
常见SSH协议
ssh软件包 openssh
ssh协议
centos7自带的软件,开机自启, sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)ftp 20 21,帮助我们实现远程连接
配置文件
/etc/ssh/
服务端配置文件
sshd_config
客户端配置文件
ssh_config
客户端:
Linux Client: ssh, scp, sftp,slogin
Windows Client:xshell, MobaXterm,putty, securecrt, sshsecureshellclient
SSH服务器主要包括SSH远程连接和ftp文件传输服务
相较于telnet,SSH更加安全,telnet的数据是明文传输的
ecdsa 代表加密算法 pub代表公钥
2.公钥传输原理
1.客户端发送连接请求
2.服务端返回自己的公钥x,以及一个会话id
3.客户端生成一个密钥对
4.客户端会用自己的公钥和会话id计算出一个res值,并用服务端的公钥加密
5.客户端发送加密值给服务端,服务端用私钥解密,得到res
6.服务端将解密后的res通过会话id计算出客户端的公钥
7.最终,双方都拥有三个密钥(自己的公私密钥和对方的公钥),之后通信的数据都会加密
ssh服务的最佳实践
建议使用非默认端口 22
禁止使用protocol version 1
限制可登录用户 白名单
设定空闲会话超时时长
利用防火墙设置ssh访问策略
仅监听特定的IP地址 公网 内网
基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs
使用基于密钥的认证
禁止使用空密码
禁止root用户直接登录
限制ssh的访问频度和并发在线数
经常分析日志 分离
6.使用密钥实现免密登录
客户端生成公钥和私钥,将其发送给服务端,实现免密登录
具体流程:
1.客户端生成一对密钥
2.将密钥拷贝给服务端
3.客户端再次发送请求,ip用户名
4.服务端得到请求会在authorized_keys()中查找,如果有对应的ip用户名,会随机生成字符串
5.服务端使用拷贝过来的客户端公钥加密,发送给客户端
6.客户端得到后用私钥解密,将解密后的字符串发送给服务端
7.服务端收到后确认,如果一致,进行连接
更多推荐
SSH 22
发布评论