• SSH 和 Git


    了解SSH

    SSH 以非对称加密实现身份验证。较常用的非对称加密有 RSA。

    两种加密过程:

      1、通过用户名密码访问服务器,即使传输的数据是加密的也可能会被劫持到不信任的服务器,泄露用户名和密码。

      2、通过将公钥(用来加密和认证客户端)放到信任的服务器上来和服务器传输密文。

    两张丑图大概解释一下。

    可以明显看到第二图的漏洞,劫持 公钥后就可以肆无忌惮的发送信息给服务器了,所以一般情况下会有一个认证中心服务器,客户端需要持有认证中心的公钥来发送密文,认证中心再持有所有服务器的公钥来分发请求。

    参考:维基百科SSh

    使用 OpenSSH 和 Putty。

    使用 OpenSSH 生成用于git 的密钥。

    打开 git bash 如果没有的话 添加 C:WindowsSystem32OpenSSH 到环境变量

    ls -al ~/.ssh    列出目录 或直接打开 C:Users电脑用户名.ssh

    -A 列示所有条目,除了 .(点)和 ..(点-点)。
    -a 列示目录中所有条目,包括以 .(点)开始的条目。
    L 列示链接引用的文件或目录内容。这是缺省操作。后跟符号链接。如果使用 -l 选项,-N 选项就成为缺省值,不后跟符号链接。当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 缺省值。
    -l (L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间。如果文件是特殊文件,大小字段包含主要和次要设备数目。如果最近一次修改时间大于六个月之前,时间字段以 月份 日期 年份的格式显示,然而六个月内修改的文件以 月份 日期 时间 的格式显示。

    如果文件是符号链接,打印所链接到的文件的路径名,其前跟 ->。显示符号链接的属性。-n-g、和 -o 标志覆盖 -l 标志。

     ssh-keygen -t rsa -C "Comment" 生成rsa密钥对

    Comment 可以填你的邮件或日期等其他注释

    ssh-add ~/.ssh/id_rsa 添加密钥到ssh-agent缓存中

    如果失败可以先执行一下 ssh-agent bash 命令。

    ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,注意这是临时的。

    手动拷贝公钥(id_rsa.pub 文件的内容)到服务器上 pbcopy < ~/.ssh/id_rsa.pub 

    github 或 gitlab 等账户设置里 ssh 选项 add key 就行了。

    输入 ssh git@github.com 测试。

    使用 git 工具克隆代码

    如果没有成功会提示:

     Disconnected: No supported authentication methods available (server sent: publickey)

    sourcetree、Git Extensions 、命令行工具都行。

    Putty 认证代理

    下载 Git Extensions 最新版 安装的时候勾选 putty。

    功能简介:生成密钥对(虚拟文件)、转换 OPenSSh 密钥对、认证代理(ssh-agent 、ssh-add)。

    其他类似。

    补充1、每次要打开认证代理并添加私钥才能与服务器交互

    比如git 推送的时候打开了代理没有添加私钥 提示

    fatal: protocol error: bad line length character: Usin

  • 相关阅读:
    常用sql
    简单的Highcharts图表
    Js获取当前日期时间及其它操作
    js数组方法详解(最新最全)
    数组循环的六种方法
    js异步回调Async/Await与Promise区别
    【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要讲故事啦~~
    NPM小结
    WebSocket协议:5分钟从入门到精通
    HTTPS简单了解
  • 原文地址:https://www.cnblogs.com/zhuwansu/p/9988251.html
Copyright © 2020-2023  润新知