• Linux SSH公钥认证配置


    ssh支持两种认证方式:密码认证和公钥认证。若没有配置公钥认证,则每次ssh连接时都需要输入密码,不仅麻烦而且还不安全,因此推荐配置公钥认证,只需在配置时输入一次密码,之后ssh连接就无需输入密码了。

    公钥认证配置只需在ssh客户端机子上配就可以:

    1.在客户端机子上生成公钥id_rsa.pub和私钥id_rsa(默认存在当前用户主目录的.ssh/下),输入ssh-keygen,有三次询问,直接回车即可。


     2. 把公钥复制到ssh server上,这个步骤其实就是刚生成的id_rsa.pub的内容追加到ssh server 的 ../.ssh/authorized_keys 文件下

     

    这个步骤需要输入一次ssh server的密码,执行完成后再以ssh方式登陆时就不需要再输入密码了:

     

    配置完毕.

    公钥认证说明:

    使用ssh-keygen程序生成公钥 id_dsa.pub 和私钥 id_dsa,一般是在客户端上生成,然后把 id_dsa.pub 通过某种方式发送给服务端。

    服务端放在将要远程登录过来的那个账号的目录的.ssh目录下面。

           客户端使用密钥和算法协商阶段生成的会话密钥加密账号、认证方法、id_dsa.pub,将结果发送给服务端。

           服务端使用会话密钥解密报文,得到账号、id_dsa.pub。    服务端在这个账号的目录的.ssh目录下找对应的公钥,如果没有找到,发送失败消息给客户端,如果找到,比较客户发送过来的这个公钥和找到的公钥,如      果内容相同,服务端生成一个随机的字符串,简称“质询”,然后使用找到的公钥加密这个质询,然后使用会话密钥再次加密。

           服务端把这个双重加密的数据发送给客户端。

           客户端使用会话密钥解密报文,然后使用id_dsa再次解密数据,得到质询。

           客户端使用会话密钥加密质询,发送给服务端。

           服务端使用会话密钥解密报文,得到质询,判断是不是自己生成的那个质询,如果不相同,发送失败消息给客户端,如果相同,认证通过

  • 相关阅读:
    《硅谷之谜》读书笔记
    Google的Bigtable学习笔记(不保证正确性)
    软件开发到底是怎么一回事呢?
    如何控制自己之2016个人目标管理
    如何自适应网页的协议(http/https/……)
    数据库时间戳设计
    AngularJS-Controller的使用-读书笔记
    FIM相关报错汇总
    iPad上的Cookie到底有多长?
    【solr】join查询,跟mysql的join不一样
  • 原文地址:https://www.cnblogs.com/wsswlyy/p/7737878.html
Copyright © 2020-2023  润新知