SSH协议
简介
SSH是建立在应用层基础上的安全网络协议。它是专为远程登录会话和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度
使用TCP协议,默认端口号是22
服务器配置文件
/etc/ssh/sshd_config(针对服务端)/etc/ssh/ssh_config(针对客户端)
服务端配置文件常用选项:
scp远程复制
远程登录 ssh [-p 端口] [用户]@服务端IP
推送 上行复制 scp [-r 目录] 文件 [用户]@服务端IP:保存路径
拉取 下行复制 scp [-P] [用户]@服务端IP:保存路径 本地路径
验证方式
sshd支持密码认证和秘钥认证两种方式
密码验证对服务器中本地系统用户的登录名称,密码进行验证。密码认证是将自己的用户名和密码发送给服务器进行认证,这种方式比较简单,且每次登录都需要输入用户名和密码,但可能会被暴力破解
密钥认证使用公钥私钥对进行身份验证,实现安全的免密登录,是一种广泛使用且推荐的登录方式。密钥认证的基本原理是服务器端使用客户端的公钥对随机内容加密,客户端使用自己的私钥解密并发送给服务器以证实自己的身份
当密码验证和密钥验证都启用时,服务器优先使用密钥验证。
vim /etc/ssh/sshd_config
密钥验证
登录流程
- 在进行SSH连接之前,SSH客户端需要先生成自己的公钥私钥对,并将自己的公钥存放在SSH服务器上。
- SSH客户端发送登录请求,SSH服务器就会根据请求中的用户名等信息在本地搜索客户端的公钥,并用这个公钥加密一个随机数发送给客户端。
- 客户端使用自己的私钥对返回信息进行解密,并发送给服务器。
- 服务器验证客户端解密的信息是否正确,如果正确则认证通过。
配置密钥验证
1.在客户端中创建密钥对
ssh-keygen -t rsa
id_rsa是私钥文件,id_rsa.pud是公钥文件
2.将公钥文件上传至服务器
scp ~/.ssh/id_rsa.pub root@192.168.128.10:/opt
3.在服务器中导入公钥文本
4.在客户端使用密钥对验证
5.设置免交互
退出登录 exit