ssh:安全通道协议,主要实现字符界面的远程登录,远程复制,类似于ftp的功能;端口号:22默认端口号,可以修改。数据加密,通信双方的数据传输都进行加密处理,包括用户的登录的口令输入。
数据传输-----基于tcp协议
ssh客户端-----------ssh服务端
tcp 默认端口号22
数据传输是加密的,防止数据泄漏
数据传输是压缩的,可以提高传输速度
基于ssh服务的软件:
客户端:xshell、moba
服务端:openssh
openssh:是ssh协议的开源软件,系统自带,而且已经设置开机自启
ssh配置文件/etc/ssh目录下
ssh_config:主要针对客户端进行配置
sshd_config:主要针对服务端进行配置
ssh的组成结构:
远程连接、远程登录、安全文件传输协议、sftp都是openssh的一部分
ssh远程传输服务的过程:
传输层:
传输层协议:服务器认证,保密性以及完整性
数据压缩
ssh-trans:提供加密技术,密码主机认证。只做认证主机,不执行用户认证
用户认证协议(ssh-userauth):
运行在传输层协议之上,开始认证用户之后,从底层的会话标识接收会话的标识符,认证会话标识符的所有权,建立私钥进行安全通信。只认证用户,不负责处理连接
连接协议(ssh-conncet):
处理最终的连接请求,运行在用户认证的协议支之上,提供了交互式登录界面,远程命令、数据转发
命令行方式的远程登录:
ssh:远程登录的命令
-p:指定服务的端口号
格式:
ssh root@20.0.0.20
root:不是本机用户是20.0.0.20的用户
@:固定格式
20.0.0.20:要登录的服务器的ip地址
ssh的访问控制:
在/etc/ssh/sshd_config配置文件中配置:
AllowUsers:允许登录的用户
DenyUsers :拒绝登录的用户
格式:
AllowUsers hqy haoqingyu@20.0.0.30:允许hqy和haoqingyu这两个账户进行远程登录,但是对haoqingyu进行了限制:只能从20.0.0.30登录到20.0.0.20的haoqingyu用户。
DenyUsers hqy:拒绝远程登录hqy账户,拒绝是所有都不允许登录就算加@指定也没用
实验:把一个用户同时允许和拒绝
配置拒绝所有系统远程连接到20.0.0.20的haoqingyu1用户
20.0.0.30登录失败
再配置允许20.0.0.30系统远程连接到20.0.0.20的haoqingyu1用户
20.0.0.30登录失败
只配置允许20.0.0.30系统远程连接到20.0.0.20的haoqingyu1用户
20.0.0.30远程登录成功
再拒绝haoqingyu1远程连接
20.0.0.30登录失败
结论:不论先拒绝还是先允许都,只要同时拒绝和允许同一用户都无法登录
远程复制:
scp:远程复制命令
-P:指定服务的端口号
-r:复制目录
格式:
scp root@20.0.0.20:/opt/ky30.txt /opt
root:不是本机用户是20.0.0.20的用户
@:固定格式
20.0.0.20:要登录的服务器的ip地址
:跟路径
/opt/ky30.txt /opt:前一个路径是登录主机的路径下的文件名或者目录名,第二个路径是复制到的本机路径
sftp:
安全的ftp,使用了基于ssh协议的加密解密技术,所以传输效率比传统的ftp要慢,但是安全性更高,语法和ftp的语法格式一模一样
sftp:文件传输命令
-P:指定服务的端口号
格式:
sftp root@20.0.0.20
实验:SFTP的上传和下载,上传文件的默认位置是哪,下载的文件下载到哪里去了
在haoqingyu1家目录下新建一个文件:
使用20.0.0.40登录到20.0.0.20的haoqingyu1用户下
下载文件123456
查找文件发现下载的文件在当前的目录中:
再新建一个456789文件:
登录到20.0.0.20的haoqingyu1用户下
上传文件456789
haoqingyu1家目录下多出456789文件:
总结:上传是上传到指定用户的家目录中,下载是下载到系统登录前的目录中
密钥对:
要求提供匹配的密钥信息,才能通过验证
1.在客户端创建一个密钥文件
2.把密钥文件传送到服务端的指定位置
3.系统远程登陆时系统将使用密钥对进行验证,实现面交互登录,增强了一定的安全性。
密码验证和密钥验证都开启,服务器会优先私用密钥对验证。
配置密钥:
ssh-keygen -t rsa:创建密钥对
密钥加密方式:
ecdsa、rsa、dsa
创建一个rsa密钥类型的密钥对:
创建完成后系统家目录下隐藏文件.ssh中出现公钥文件和私钥文件
/root/.ssh目录中:
id_rsa:私钥文件
id_rsa.pub :公钥文件
ssh-copy-id -i id_rsa.pub root@20.0.0.30:传输密钥对给20.0.0.30
ssh-agent bash:启动免交互
ssh-add:添加密钥
登录用户不需要输入密码:
TCP wrappers 访问控制:
tcp包裹tcp服务,代为监听使用tcp服务程序的端口
要先通过tcp wrappers的安全机制,才能真正访问程序
只能针对使用tcp协议的服务
对应的两个策略文件:
/etc/hosts.allow:允许个别,拒绝所有
/etc/hosts.deny:允许所有,拒绝个别
配置格式:
服务 : 主机ip地址
sshd : 20.0.0.20