Skip to main content

身份验证

问题

项目上有一个需求,要做平台和平台的级联,于是遇到了一个问题,上下级平台如何建立安全的连接

先找一些身份验证的例子

1. SSH 密钥

SSH SSH(Secure Shell)密钥是一对用于身份验证的加密密钥,常用于通过SSH协议连接远程服务器,而无需输入密码。SSH主要用于在不安全的网络上安全地访问远程系统,如服务器或云环境。以下是关于SSH密钥的介绍:

工作原理

  • 密钥生成:客户端首先使用ssh-keygen工具生成密钥对。该工具会创建两个文件:
    • 私钥:默认文件名为id_rsa,私钥保存在本地。
    • 公钥:默认文件名为id_rsa.pub,需要被复制到服务器的~/.ssh/authorized_keys文件中,每一行表示一个可以登录的公钥。
  • 认证流程
    1. 客户端发起SSH连接。
    2. 服务器检查客户端是否具有匹配的公钥。
    3. 如果匹配,服务器生成一个挑战消息并发送给客户端。
    4. 客户端使用其私钥解密该消息,并将响应发送回服务器。
    5. 服务器验证响应,如果正确,允许客户端登录。

特点

  • 客户端生成公钥和私钥
  • 服务器保存公钥,通过公钥加密
  • 客户端通过私钥解密