ssh简介原理 公钥私钥

ssh简介原理

  简单说,SSH是一种网络协议,用于计算机之间的加密登录。
  最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。
  1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,
  成为互联网安全的一个基本解决方案,迅速在全世界获得推
  广,目前已经成为Linux系统的标准配置。
  需要指出的是,SSH只是一种协议,存在多种实现,既
  有商业实现,也有开源实现。本文针对的实现是OpenSSH,
  它是自由软件,应用非常广泛。
  • 实现的原理:
(1)客户机向远程主机发送登录请求,并且把自己的公钥发送给远程主机。
(2)远程主机收到用户的登录请求,首先判断对应的用户主目录下是否存在
    .ssh/authorized_keys并且这个文件中有没有有## 客户机 ##的公钥时,
    如果条件不成立,就会使用## 账户口令登录登录的方式 ##。
        同时向客户机返回1.## 自己的公钥 ##

    如果条件成立,则会使用## 公私钥登录的方式 ##。
        同时向客户机返回1.自己的公钥;  2.客户机公钥加密过的## 一些验证信息 ##
账户口令登录登录的方式:(每次都需要输入密码,不能免密钥登录)
      (3)用户使用这个公钥,将登录密码加密后,发送回来。
      (4)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

基于公私钥登录的方式:(可以实现 免密钥登录)
      能用到这种方式的前提是,用户已经将自己的公钥储存在远程主机上,
      这个是重点,也就是所谓的“公密钥分发”。

      (3)用户用自己的私钥解密“随机信息”后,接着用“私钥”加密签名该“随机信息”,
      最后再用远程主机的公钥加密发送给远程主机。
      (4)远程主机先用自己的私钥解密,然后在用事先储存的客户机公钥进行解密认证,
      得出“随机信息”,如果“随机信息”正确,就证明用户
      是可信的,直接允许登录shell,不再要求密码。

你可能感兴趣的:(Linux)