【git、gerrit】git中https和SSH克隆的区别、id_rsa、id_rsa.pub

相关文章:
【Gitee】配置与克隆代码 git的具体应用

1.在git中clone项目有两种方式:HTTPS和SSH,它们的区别如下:

  • HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;
  • SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

简答来说,https是克隆时不校验,但是提交时校验,ssh正好相反,先校验,那么必须先进行配置才行,否则会报permission denied (publickey错误

2. 在git中使用SSH Key的步骤:

为什么要创建公钥和预配置呢?首先ssh模式目的是为了让clinet和git server能够安全通信,所以采用了数字签名RSA或者DSA来完成这个操作,ssh加密原理需要预配置公钥,否则怎么能保证安全通信呢。

2.1 检查电脑是否存在SSH Key:

$ cd ~/.ssh
$ ls

如果存在id_rsa.pubid_dsa.pub 文件,说明文件已经存在,跳过创建SSH Key步骤。

2.2 创建SSH Key

$ ssh-keygen -t rsa -C "your_email@example.com"

该命令是在linux环境执行的,如果是windows,可以在git bash里面执行,git bash自带环境。并且生成一对秘钥,分别是私钥和公钥,公钥需要注册到git server端

return后(出现如下命令)会让你输入push时的密码(不是git登录密码),一般推荐跳过,连续直接按enter,出现如下命令说明SSH Key创建成功了:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/zxh/.ssh/id_rsa):       '表明生成的是id_rsa.pub'
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/zxh/.ssh/id_rsa
Your public key has been saved in /c/Users/zxh/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/Xj65ex4INpKaFjNtqfWCIUUvGCTUQezhXz+/B7X5WU advancina@163.com
The key's randomart image is:
+---[RSA 3072]----+
|    .*=+o        |
|    = ==.        |
|   . +.=         |
|      ooo.       |
|      ..So.     E|
|     o.o .+o.  +o|
|    . o.o=oo+.o o|
|     . .+ooo.B.  |
|       .o..o+o+  |
+----[SHA256]-----+

windows下为例,生成的路径是用户/.ssh目录下:
在这里插入图片描述

需要注意的是,id_rsa和id_rsa.pub是成对生成的,二者必须匹配才能工作。当你把id_rsa.pub公钥导入到远程服务器时,本地目录下的 C:\Users\zhangsan.ssh\id_rsa私钥是不能删除的,也不能挪位置;当你调用ssh -keygen命令重新生成密钥对时,本地的C:\Users\zhangsan.ssh\id_rsa私钥会被覆盖,因此,你需要把新的公钥导入到远程服务器才能继续工作

查看SSH Key:

$ cat ~/.ssh/id_rsa.pub

将查看的SSH Key导入到git中设置好,导入步骤参见 【Gitee】配置与克隆代码 中的 <2.2 导入公钥>章节。

测试SSH Key:

$ ssh -T git@git.oschina.net

出现Welcome to XXX就可以了。

参考

git中https和SSH的区别
permission denied (publickey)问题的解决
ssh-keygen 的 详解 ssh-keygen命令详解
git的ssh key使用和原理 git 使用ssh原理

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值