SSH的认证方式

SSH基础

  • ssh 是种通用的网络传输加密机制
  • ssh采用的是不对称加密方式传输,分一个公匙和一个私匙
  • 公匙用来加密 ;私匙用来解密.
  • .ssh/目录下可能存在的文件.
  • authorized_keys:其他机器生成的公匙放在本机的,名字必须是这个
  • id_dsa:密匙
  • id_dsa.pub :公匙
  • known_hosts:曾经用ssh连过的机器

一般来说,SSH提供了两种安全认证方式

一是基于口令的安全认证。

在这种认证方式下,用户只需要知道帐户与口令,就可以利用SSH协议远程登陆到服务器。在这种认证模式下,其传输的数据,包括用户名与密码,是密文传输的。

这个过程如下:

1. 远程主机收到用户的登录请求,把自己的公钥发给用户。
2. 用户使用这个公钥,将登录密码加密后,发送回来。
3. 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

这种方式可能会有别的服务器在冒充真正的服务器,将公钥发送给客户端,客户端就会将密码加密后发送给冒充的服务器,冒充的服务器就可以拿自己的私钥获取到密码,也就是受到“中间人”这种方式的攻击。

值得一说的是当第一次链接远程主机时,会提示您当前主机的”公钥指纹”,询问您是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/.ssh/known_hosts文件中。

二是基于密钥的安全认证。

在这种安全认证方式下,需要依靠密钥进行认证。此时,用户需要为自己创建一对密钥。用户要通过其他安全的方式,把公钥方在需要远程管理的服务器上。当管理员连接到SSH服务器上的时候,客户端会向服务器发出请求,要求其利用客户端的密钥进行安全性认证。服务器收到客户端的请求后,就会利用你事先发给他的公钥进行比较、辨别。如要两个密钥一致的话,服务器就用公钥加密质询并把它发送给客户端软件。客户端软件接收到服务器的质询后,就可以利用私人密钥进行解密并把结果发送给服务器。
这种方式跟第一种方式相比,就是可以保障SSH服务器的合法性,有效的避免“中间人”攻击。

你可能感兴趣的:(SSH的认证方式)