目录
绪论:
因为机房重地闲人免进,就有了远程连接工具,linux服务器自带ssh
1、ssh协议
· 是一种安全通道协议,主要实现字符界面的远程登录、复制、类似于ftp的传输功能,默认端口号为22
· 数据加密,通信双方的数据传输都进行加密处理,包括用户登录的口令输入
1.1 简述
数据传输:基于tcp协议
分为两个端,客户端和服务端,服务端的端口默认22
数据传输是加密的,方式数据泄露
数据传输时压缩的,可以提高传输速度
客户端:xshell moba
服务端:openssh
openssh:是ssh协议的开源软件,系统自带,而且已经设置为开机自启
1.2 openssh
服务名称:sshd
服务端主程序:/usr/bin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
1.3 ssh的组成结构
远程连接、远程复制、安全稳健爱你传输协议(sftp)
1.3.1 实现过程
· 传输层协议ssh-trans
服务器认证,保密性以及完整性,数据压缩
提供加密技术、密码主机认证。缺点是之做认证主机,不认证用户
· 用户认证协议ssh-userauth
运行在传输层之上,开始认证用户之后,从底层的绘画表示接受绘画的标识符。也就是认证绘画标识符的所有权,建立私钥,进行安全通信。只认证用户,不负责处理连接
· 连接协议ssh-connect
处理最终的连接请求,运行在用户认证的协议之上,提供了交互式登录界面、远程命令、数据转发
1.4 实验
1.4.1 远程连接登录
vim /etc/ssh/sshd_config
进去看
端口号:#Port 22 默认
监听地址:#ListenAddress 0.0.0.0 注释掉了,表示监听所有
修改端口号解开注释Port 10022
保存退出
systemctl restart sshd
关防火墙,安全机制
改了端口号用命令的方式远程登录
另外一台:
ssh root@20.0.0.40(要登录的用户ip)
{root不是本机的用户,是40端口的用户}
两个端口号不同的话:ssh -p 10022 root@20.0.0.40
1.4.2 设置访问控制
vim /etc/ssh/sshd_config里面
最下面加入:
AllowUsers 用户 允许哪些登录
DenyUsers 用户 不允许登录的用户
1.4.3 远程复制
scp:远程复制,从别的主机把文件或者目录复制到本机
vim /etc/ssh/sshd_config
scp root@要登陆的主机用户:/opt/ky30.txt /opt/rh
cd /opt/rh
{ root 表示登录主机的用户,:后面第一个是登录主机的路径下的,第二个是复制到本机的地址}
两个端口号不同的话:scp -P 10022 root@...
复制目录:scp -rP 10022 root@...
1.4.4 sftp
sftp:安全的ftp,使用了基于ssh协议的加密解密技术,所以传输效率比传统的ftp要慢,但是安全性更高,语法和ftp一样
两个端口号不同的话:sftp -P 10022 root@...
ssh除了验证用户密码之外,还能密钥对验证。服务器用户的密码可以通过暴力破解的方式破解掉,产生了密钥对,要求提供匹配的密钥信息,才能通过验证
· 在客户端查u那个建一个密钥文件
· 密钥文件传送到服务端的指定位置
· 远程登陆时系统将使用密钥对进行验证,实现免交互登录,增强了一定的安全性
· 如果密码验证和密钥验证都开启,服务器优先使用密钥验证
ssh
实验:(ecdsa rsa)
配置文件:vim /etc/ssh/sshd_config
#PasswordAuthenticiation Yes 表示启用密钥对
#PubkeyAuthenticiation Yes 启用密钥对验证
ssh-keygen -t ecdsa回车第一行默认回车
第二行输入密码,第三行确认密码
{ 在~目录下的.ssh里面:
id_ecdsa:私钥文件
id_ecdsa.pub:公钥文件 }
在~目录下的.ssh里面:
ssh-copy-id -i id_ecdsa.pub root@20.0.0.70(目标主机ip) 传输密钥对给70
实现交互:ssh-agent bash
密钥密码:ssh-add
ssh root@20.0.0.70
1.5 tcp wrappers :访问控制
主要功能:包裹tcp服务,代为监听使用tcp服务程序的端口,要先通过tcp wrappers的安全机制,才能真正访问程序,只能是针对使用tcp协议的服务
对应的策略文件文件:
/etc/hosts.allow 允许个别,拒绝所有
/etc/hosts.deny 拒绝个别,运行所有
ALL:ALL 允许所有
vim /etc/hosts.deny
编辑:sshd:20.0.0.30 拒绝30
在30主机:ssh root@20.0.0.40结果