Liunx服务器SSH认证登录方式。

  • 用户名密码验证方式:

基于口令的验证方式(password authentication method),通过输入用户名和密码的方式进行远程机器的登录验证。

用户名密码验证方式

说明:

  1. 当客户端发起ssh请求,服务器会把自己的公钥发送给用户;
  2. 用户会根据服务器发来的公钥对密码进行加密;
  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功。
  • 基于密钥的登录方式

基于公共密钥的安全验证方式(public key authentication method),通过生成一组密钥(public key/private key)来实现用户的登录验证。

基于密钥的登录方式

  1. 首先在客户端生成一对密钥(ssh-keygen
  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端
  3. 当客户端再次发送一个连接请求,包括ip、用户名
  4. 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:hhjie
  5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
  • 基于键盘输入方式登录

基于键盘交互的验证方式(keyboard interactive authentication method),通过服务器向客户端发送提示信息,然后由客户端根据相应的信息通过手工输入的方式发还给服务器端。
关闭键盘输入验证登录方法:
vim /etc/ssh/sshd_config
ChallengeResponseAuthentication no

原文地址:https://www.cnblogs.com/a72hongjie/p/8974811.html