git ssh传输的原理与实践
来源:互联网 发布:mac dps文件怎么打开 编辑:程序博客网 时间:2024/05/16 09:32
在win7系统配置git,首先安装git客户端,下载地址:
https://git-for-windows.github.io/
下载后安装即可
Git安装好后应该与远程仓库建立关联,这里选用github
需要一提的是,git在提交到远程的时候有以下几种方式
1. Ssh (非自己的项目没有这个)
Ssh是secure shell的缩写,是一种安全的网络协议,git使用这种协议进行远程加密登录。
Ssh的登录命令格式为:
$ Sshuser@host
其中,user为用户名,host为远程主机,比如
$ ssh git@github.com (这条命令一般用来测试git能否连接远程host)
Ssh登录安全性由非对称加密保证,所谓非对称加密,就是产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在git中一般命名为id_rsa.pub, id_rsa, id_rsa是密钥名,可以自己制定,默认的id_rsa说明了生成密钥时选择的加密算法,也可以指定为dsa(ras是一代算法,给予大整数的分解,Dsa二代算法,于整数有限域离散对数难题)使用-t参数选择
那么如何使用生成的一个私钥一个公钥进行验证呢
首先,我们要在本地生成一个密钥对,其中公钥放到远程主机,私钥保存在本地,当本地主机需要登录远程主机时,本地主机向远程主机发送一个登录请求,远程收到消息后,返回一个随机生成的字符串,本地拿到该字符串,用存放在本地的私钥进行加密,再次发送到远程,远程用之前存放在远程的公钥对本地发送过来加密过的字符串进行解密,如果解密后与源字符串等同,则认证成功。
根据这个原理,下面一步步利用git提供的方法进行配置:
1. 在本地生成密钥对
使用命令
-t参数选择使用的算法,可以为rsa,dsa
-c参数选择自己使用的邮箱地址
生成过程会提示输入文件名,即生成密钥的文件名,还提示是否输入密码,这个密码是用来保护存放在本地的私钥不被其他人使用,只有该密码的持有者才可以使用该私钥,文件名使用id_rsa,密码直接回车,表示不设置保护密码。
执行后,会在默认文件夹C:\Users\Administrator\.ssh\下生成两个文件,其中id_rsa为私钥,id_rsa.pub为公钥。
2 将公钥放到远程主机。
可以使用命令
$ ssh-copy-id user@host命令来直接将公钥发送过去,也可以直接复制过去,以github为例,记事本打开公钥文件,复制到剪贴板,打开github,找到设置界面
选择newSshKey,粘贴上去。远端公钥配置完毕。
3 .在远程发送随机字符串到本地时,本地程序需要知道到哪里去找存放在本地的私钥,执行
Ywy_key是我之前生成的私钥,应该改成自己的私钥文件名。
至此,配置就算完成了。
4 . 测试一下,
- git ssh传输的原理与实践
- 【Git】git支持的传输协议:Local+SSH+Git+HTTP
- git的传输协议及各自优缺点(本地传输协议,ssh,http,git)
- SSH的原理与运用
- RocketMQ的原理与实践
- RocketMQ的原理与实践
- 决策树的原理与实践
- git原理与实践知识索引——持续更新
- ssh git key 的生成与覆盖
- windows下的git与ssh
- Git的安装与设置SSH
- git:https与ssh的使用区别
- Git 使用的实践与规范
- git与ssh
- ssh密钥与git
- ssh的配置与原理解释
- CentOS6.2下用gitosis搭建基于ssh传输协议的git-server
- git 与github 之前的传输通道建立
- nginx 配置多个tomcat共用80端口
- k8s容器调度策略
- 堆排序
- 探究为何:在onCreate中通过View.post能获取宽高
- android网络判断
- git ssh传输的原理与实践
- 设计模式深入学习--Proxy 代理模式(结构型模式)
- linux之sed命令详解
- Quartz.NET Windows 服务示例
- 关于android studio debug签名
- STL set集合容器
- 洛谷 P1583 魔法照片
- CI集成支付宝即时到账支付接口
- coco参考文档网址