身份验证
问题
项目上有一个需求,要做平台和平台的级联,于是遇到了一个问题,上下级平台如何建立安全的连接
先找一些身份验证的例子
1. SSH 密钥
SSH SSH(Secure Shell)密钥是一对用于身份验证的加密密钥,常用于通过SSH协议连接远程服务器,而无需输入密码。SSH主要用于在不安全的网络上安全地访问远程系统,如服务器或云环境。以下是关于SSH密钥的介绍:
工作原理
- 密钥生成:客户端首先使用
ssh-keygen
工具生成密钥对。该工具会创建两个文件:- 私钥:默认文件名为
id_rsa
,私钥保存在本地。 - 公钥:默认文件名为
id_rsa.pub
,需要被复制到服务器的~/.ssh/authorized_keys
文件中,每一行表示一个可以登录的公钥。
- 私钥:默认文件名为
- 认证流程:
- 客户端发起SSH连接。
- 服务器检查客户端是否具有匹配的公钥。
- 如果匹配,服务器生成一个挑战消息并发送给客户端。
- 客户端使用其私钥解密该消息,并将响应发送回服务器。
- 服务器验证响应,如果正确,允许客户端登录。
特点
- 客户端生成公钥和私钥
- 服务器保存公钥,通过公钥加密
- 客户端通过私钥解密