[git]使用SSH协议推拉代码

[git]使用SSH协议推拉代码

2020-7-15 21:32:00 by loki



目的

使用http协议推拉代码,每次都需要输入账号密码,安全性低,还麻烦。所以用SSH协议来推拉代码,更安全,更快速。

方案

  1. 在本地和gitee上准备好仓库
  2. 生成密钥(用git bash,或putty key Generator
  3. 添加私钥到agent(git bashSSH-keygen命令用的是config文件,tortoisegit用的是putty agent
  4. 添加公钥到gitee(部署公钥用于生产,账号公钥用于开发)
  5. 使用git管理代码

SSH key是什么

SSH密钥,是用于绑定使用者的身份的,也就是1人1密钥(公钥+私钥)

在操作私有仓库时,密钥才有效。公共仓库本身就是开放操作的,不需要账号或者密钥。

为什么要添加密钥

使用SSH协议,需要配置密钥,否则会报错:

git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

生成key的方法

可以用ssh-keygen命令或者TortoisGitputtyGen插件生成key,但生成的key只能为其自己使用。

ssh-keygen生成的key默认名称为id_rsa,没有后缀

puttyGen生成的key名称样式为*.ppk

如果即要用bash,又要用tortoisegit,那么就要添加两个key。

ssh-keygen制作SSH key

生成key

进入cmd,使用以下命令生成ssh key:

ssh-keygen -t rsa -C "<你的邮箱>"

接下来需要输入3个参数:私钥文件存储路径,密码,确认密码

可以直接按3次回车,即全都以默认确定,默认私钥文件存储路径为~/.ssh/id_rsa,密码默认为空。

公钥id_rsa_pub也会生成在同一目录下。

临时添加ssh私钥到agent

若生成key时不是以默认路径保存,则需要再添加到ssh-agent

注意添加的是私钥的文件名称

## 提高权限,否则不能add
ssh-agent bash 

ssh-add "/c/users/<username>/.ssh/<filename of private key>"

如果又生成了key文件,则要删除原来的密钥路径

注意,上面的方法是临时性的,重新打开bash后需要重新配置。

配置多个ssh私钥

参考:git配置多个ssh-key

要长期保存,需要建立一个配置文件~/.ssh/config,这点TortoistGit也是一样的(TortoistGit的配置文件路径为.git/tortoisegit.data)。

config文件内容如下:

## gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/<私钥文件名称>

添加公钥到gitee

输入以下命令查看public key

cat ~/.ssh/id_rsa.pub

将公钥复制到输入框中

image-20200716210400142

注意,要使用的是公钥id_rsa.pub,而不是id_rsa

验证SSH-key

输入以下命令

ssh -T git@gitee.com

若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则添加成功。

完成

添加公钥后,就可以在git bash中通过ssh推拉代码了。

puttyGen制作SSH key

说明

在TortoiseGit的setting中,若URL为SSH类型,则要指定key的路径。

若用户没有指定key的路径,TortoiseGit会默认从key列表加载key。

打开任务栏右下角的putty agent,可查看自动加载列表

image-20200716210749688

image-20200716210659117

生成key

生成密钥:单击generate,在空白区域移动鼠标,

保存私钥:单击save private key,若已有public key,可以通过“load”加载。

image-20200716211301588

添加私钥到agent

打开putty agent,单击add key

image-20200716211319502


选择刚才保存的private key

image-20201223151206132

添加公钥到gitee

加载私钥:在putty中单击load,选择私钥文件

复制公钥:加载私钥文件后,复制公钥

image-20210210094027688

在gitee中添加公钥:输入公钥名称,并将复制的公钥粘贴到公钥输入框中。

image-20200716211521941

完成

添加公钥后,就可以在git bash中通过ssh推拉代码了。

Tortoise

参考

通过https/ssh协议推拉代码

生成/添加SSH公钥

SSH公钥设置

ssh-add命令

git配置多个SSH-KEY

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值