ssh(7)密码认证过程
SSH(Secure Shell)基于密码认证是一种常见的身份验证方式,允许用户通过用户名和密码安全地登录远程服务器。
SSH基于密码认证过程
SSH(Secure Shell)基于密码认证是一种常见的身份验证方式,其过程如下:
- 客户端发起连接:用户通过SSH客户端(如
ssh user@host
)向服务器发起连接请求,指定目标服务器的IP地址或域名及端口(默认22)。 - 服务器响应并发送公钥:SSH服务器收到请求后,会发送自己的公钥和主机密钥给客户端,用于后续的加密通信。
- 客户端验证服务器身份:客户端检查服务器公钥是否可信(通常与本地
known_hosts
文件对比),若首次连接,会提示用户确认。 - 建立加密通道:双方协商会话密钥(通过Diffie-Hellman密钥交换算法),建立加密通信通道。
- 客户端发送用户名:客户端通过加密通道向服务器发送登录的用户名。
- 服务器提示输入密码:服务器验证用户名后,要求客户端提供密码。
- 客户端发送密码:用户输入密码,客户端将其通过加密通道发送给服务器。
- 服务器验证密码:服务器接收密码后,与本地存储的密码(通常是散列形式,如
/etc/shadow
)进行比对。 - 认证结果反馈:若密码正确,服务器允许登录并开启会话;若错误,返回失败信息,客户端可能被要求重试(受限于配置中的尝试次数)。