• Win10/Linux下ssh-keygen实现免密ssh交互操作


      相比于对称加密,在互联网中应用更为广泛的是非对称加密。后者解决了前者在密钥分发过程中的不安全、不便捷的问题。

      非对称加密与解密中,使用者需要在自己手中根据算法生成一对密钥,公钥A和私钥A。公钥A可以发送给需要信息交互的对象(公开到了网络中),私钥A自己保留。当用对象使用公钥A进行加密的文本,传输到网络中时,只有私钥A才能对该文本解密。所以如果是为了保证信息交互的私密性,那么就必须使用公钥加密,对应的私钥解密。而如果使用私钥A加密的文本传输到网络中去,那么公钥A可以对其进行解密,这种属于数字签名,也就是说保证这个文本是由A发送出来的,但是由于公钥A是公开的,所以内容并不保密。如图:

      在该图中,A和B的交互,都是公钥加密,私钥解密,所以网络传输的密文其他人是无法解开的。

    -------------------------------------------------------------------------------------

      在ssh或者scp命令中,我们采用ssh协议进行交互操作或者数据传输,如果每次都要输入密码,是很麻烦的,可以采用ssh-keygen的方式,生成各自的公钥私钥,继而实现免密交互。

    1.生成公私钥:

    见图,其中ssh-keygen是一个ssh秘钥生成(ssh key generator)的命令,可以自行查阅其使用的参数,常用的-t标识采用的加密算法,-C标识备注信息。

     

     2.将自己的公钥发送给需要交互的对象:

    在/root/.ssh/目录下,就是我们的私钥和公钥,而authorized_keys就是其他站点的信任公钥。

    此时,我们的私钥就在id_rsa中,而公钥就是id_rsa.pub,我们需要做的就是把公钥文本中的内容,复制到其它服务器的authorized_keys中去。

    注意,这里可以存放多个信任来源的公钥文本。不同的公钥文本之间需要换行。

    OK,大功告成,此时我们就可以从本地,免密ssh登录或者其它操作了。

    同理,如果对方服务器想免密登录到我们的服务器上时,只要把对方服务器的公钥存放在我们服务器上的authorized_keys中。

    -------------------------------------------------------------------------------------

    在win10中,系统也是支持ssh,我们可以在管理可选功能中找到它们。如果没有安装,直接点击安装,安装完成后需要重启电脑生效。

    如果没有安装,那么他们不会在列表中,你需要点击+添加功能找到它们:

    完成安装后,可以在windows上生产公钥私钥对,然后将公钥放到linux服务器上,此时我们在cmd命令行中也可以ssh免密登录,scp传输文件等操作:

    这种免密操作可以为后续的自动化脚本提供便利。

  • 相关阅读:
    静态变量和非静态实例变量的区别
    引用iScroll.js实现上拉和下拖刷新
    微信公众平台开发(一) 配置接口
    Javascript中event.srcElement和event.target的区别
    js执行环境的深入理解
    jQuery on()方法
    JAVA基本类库介绍
    Java程序员学习之路
    Java以基础类库
    jQuery插件的开发之$.extend(),与$.fn.extend()
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/15171090.html
Copyright © 2020-2023  润新知