zoukankan      html  css  js  c++  java
  • git ssh

    ssh key 生成

    ssh-keygen -t rsa -b 4096 -C "邮箱"

    -t : 

    t是type的缩写,指定密钥的类型,密钥的类型有两种,一种是RSA,一种是DSA

    RSA:RSA加密算法是一种非对称加密算法,是由三个麻省理工的牛人弄出来的,RSA是他们三个人姓的开头首字母组合。

            DSA:Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种。

    为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。ssh-keygen默认使用rsa密钥,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa。

    -b :
    b是 bit的缩写
    -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。

    -C :
    大写C表示提供一个注释 用于识别这个密钥,所以“”里面不一定非要填邮箱,可以是任何内容,邮箱仅仅是识别用的key

    ssh 两种登录方式

    1.用户名密码 说明:

      (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户;

      (2) 用户会根据服务器发来的公钥对密码进行加密;

      (3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功。

    2.基于秘钥 说明:

    (1) 首先在客户端生成一对密钥(ssh-keygen);

      (2) 并将客户端的公钥ssh-copy-id 拷贝到服务端;

      (3) 当客户端再次发送一个连接请求,包括ip、用户名;

      (4) 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;

      (5) 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;

      (6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;

      (7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。

  • 相关阅读:
    go——数组
    go——流程控制
    go——基本类型
    go——基本构成要素
    go——常量
    go——变量
    go——标准命令
    go——工程结构
    python 优雅的使用正则表达式 ~ 1
    python 安装操作 MySQL 数据库.
  • 原文地址:https://www.cnblogs.com/fmys/p/9799827.html
Copyright © 2011-2022 走看看