目录
ssh
SSH(Secure Shell)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务
主要作用
1.主要实现字符界面的远程登陆、远程复制、类似于ftp的功能,默认端口为22(可以修改)。
2.数据加密,通信双方的数据传输都进行加密处理,包括用户登录的口令输入
数据传输基于tcp协议,是加密的、压缩的,能防止数据泄漏、提高数据传输速度
软件
客户端 xshell moba
服务端 openssh
openssh是ssh协议的开源软件,是系统自带且设置了开机自启
文件位置
ssh_config 主要针对客户端进行配置
sshd_config 主要针对服务端进行配置
ssh组成结构
1.远程连接、远程登陆、安全文件传输协议sftp都是openssh的一部分
2.传输层协议,提供服务器认证、保密性以及完整性、数据压缩
协议:
ssh-trans 提供加密技术和密码主机认证(只认证主机,不认证用户)
ssh-userauth(用户认证协议)
运行在传输层协议之上,开始认证用户之后,从底层的会话标识接收会话的标识符,认证会话标识符的所有权,建立私钥进行安全通信(只认证用户,不负责连接)
连接协议
处理最终的连接请求,运行在用户认证协议之上,提供了交互式登陆界面、远程命令、数据转发
命令行方式的远程登陆
ssh命令
例ssh -p 10022 root@192.168.233.10
root不是本机用户,是10的用户
@固定格式
192.168.233.10 要登陆主机的ip地址
-p 10022 登陆非默认端口
ssh的访问控制
文件配置
sshd_config
AllowUsers 允许登陆的用户
AllowUsers zhangsan lisi@192.168.233.20允许zhangsan和lisi这两个账户登录,但是对boge做了限制条件,只能从20登录我10的这个用户,多个用户用空格隔开
DenyUsers 拒绝登陆的用户
不能同时拒绝和允许同一个用户
远程复制
这是重点,工作中好用
scp命令 远程复制,从别的主机的文件或目录复制到本机
例 scp -P 10022 root@192.168.233.20:/opt/test.txt /opt/rh
root 登陆主机的用户
@固定格式
192.168.233.20 登陆主机的IP地址
:/opt/test.txt /opt/rh 第一个路径是第一个路径是登录主机的路径下的文件名或者目录名,第二个路径复制到本机的路径
-P 10022 登陆非默认端口
-r 复制目录
sftp 安全的ftp,使用了基于ssh协议的加密技术,所以传输效率比传统的ftp慢,但是安全性更高,语法和ftp一模一样
密钥对验证
因为服务器用户的密码可以被暴力破解,所有产生了密钥对。密钥对要求提供匹配的密钥信息才能通过验证
步骤
1.在客户端创建一个密钥文件
2.密钥文件传输到服务端的指定位置
3.远程登录时系统将使用密钥对进行验证,实现面交互登陆。
如果密码验证和密钥对验证都开启 ,服务器会优先使用密钥对验证
命令
ssh-keygen -t ecdsa 密钥加密方式 :ecdsa、rsa、dsa,一般用ecdsa
ssh-copy-id -i id_ecdsa.pub root@192.168.233.20 ssh-copy-id 把本地主机的公钥复制到远程主机的 authorized_keys 文件中
ssh-agent bash ssh-agent bash 用于启动一个新的 Bash shell,并在该 shell 中启动 SSH Agent。SSH Agent 是一个身份验证代理,用于管理和缓存 SSH 密钥,可以在需要时自动提供身份验证,从而实现免密码登录等功能。
ssh-add ssh-add 将 SSH 私钥添加到 SSH Agent 的命令。SSH Agent身份验证代理,管理和缓存SSH密钥
id_ecdsa 私钥文件 id-ecdsa.pub 公钥文件
TCP wrappers 访问控制
包裹tcp服务,代为监听使用tcp服务程序的端口,要先通过TCP wrappers的安全机制,才能真正访问程序。只能针对使用tcp协议的服务。
对应的两个策略文件
/etc/hosts.allow 允许个别,拒绝所有
/etc/hosts.deny 允许所有,拒绝个别
实验
密钥对
ssh-keygen -t ecdsa
ssh-copy-id -i id_ecdsa.pub root@192.168.233.20
ssh-agent bash
ssh-add
结果