SSH用户认证最基本的两种方式是密码认证和密钥认证。密码认证是将自己的用户名和密码发送给服务器进行认证,这种方式比较简单,且每次登录都需要输入用户名和密码。密钥认证使用公钥私钥对进行身份验证,实现安全的免密登录,是一种广泛使用且推荐的登录方式。密钥认证的基本原理是服务器端使用客户端的公钥对随机内容加密,客户端使用自己的私钥解密并发送给服务器以证实自己的身份,具体的过程见下图。
SSH密钥认证登录流程
- 在进行SSH连接之前,SSH客户端需要先生成自己的公钥私钥对,并将自己的公钥存放在SSH服务器上。
- SSH客户端发送登录请求,SSH服务器就会根据请求中的用户名等信息在本地搜索客户端的公钥,并用这个公钥加密一个随机数发送给客户端。
- 客户端使用自己的私钥对返回信息进行解密,并发送给服务器。
- 服务器验证客户端解密的信息是否正确,如果正确则认证通过。