likes
comments
collection
share

Git使用ssh密钥推送代码到仓库/拉取代码

作者站长头像
站长
· 阅读数 35

在使用gitee或者github的时候,除了通过账户密码认证以访问仓库,更加推荐和安全的做法还是使用ssh密钥。

1,本地生成ssh密钥对

安装完成git之后打开git bash或者命令行,输入命令:

ssh-keygen -t rsa -C "密钥名"

密钥名自己取,可以是邮箱也可以是随意的命名。

然后连按三次回车,密钥对就生成了!

C:\Users\你的用户名\.ssh目录下可以看到生成的密钥文件:

Git使用ssh密钥推送代码到仓库/拉取代码

2,添加公钥到gitee/github上面

首先找到我们刚刚生成的公钥文件id_rsa.pub,在C:\Users\你的用户名\.ssh目录下,使用文本编辑器打开id_rsa.pub文件并复制里面全部内容,这些内容即为公钥内容,需要配置到gitee或者github里面。

Git使用ssh密钥推送代码到仓库/拉取代码

下面分别讲解gitee和github里面配置。

(1),gitee

在个人账户设置里面找到ssh公钥:

Git使用ssh密钥推送代码到仓库/拉取代码

Git使用ssh密钥推送代码到仓库/拉取代码

标题随便,公钥内容就是我们刚刚复制的公钥文件内容。

确定添加即可。

以后git clone或者remote add项目的地址就用项目ssh地址代替:

Git使用ssh密钥推送代码到仓库/拉取代码

(2),github

其实方法差不多,在账户设置(settings)-SSH and GPG keys这一栏:

Git使用ssh密钥推送代码到仓库/拉取代码

Git使用ssh密钥推送代码到仓库/拉取代码

点击new ssh keys:

Git使用ssh密钥推送代码到仓库/拉取代码

以后就使用项目ssh地址代替clone/remote地址:

Git使用ssh密钥推送代码到仓库/拉取代码

配置ssh密钥,第一次执行推送或者拉取命令时可能会出现the authenticity of host 'xxx.com (xxx.xxx.xxx.xxx)' can't be established.的提示,这个不影响使用,根据提示,直接输入yes然后回车即可。下一次执行命令就不会有这样的提示了。

3,如果换了电脑仍然想使用原来的公钥

如果说换了一台电脑,那就不能使用原来的公钥push/pull了,除非重复步骤1,2在新电脑上生成新的密钥对。

不过我们不需要这样做,其实把原来的电脑上的密钥文件拷贝到U盘或者一些移动介质里面,再放到新电脑的密钥位置即可。

把原来生成密钥的电脑上的密钥,即位于C:\Users\你的用户名\.ssh的两个文件id_rsaid_rsa.pub,拷到新电脑的C:\Users\新电脑用户名\.ssh目录下即可。linux系统拷贝到/home/你的用户名/.ssh文件夹下即可,用户文件夹下没有.ssh文件夹就创建一个。

说白了只要把公私钥文件放在用户目录下的.ssh文件夹下即可。

4,提示远程密钥变化报错问题解决

有时我们在推送/拉回代码时,可能会出现以下情况导致我们操作失败:

Git使用ssh密钥推送代码到仓库/拉取代码

这是由于验证远程证书失败导致。

我们还是找到用户文件夹中的.ssh文件夹,即位于C:\Users\你的用户名\.ssh下,找到其中的known_hostsknown_hosts.old,将这两个文件删除即可。

然后再重新操作就不会出现这个问题了!

known_hosts文件是用于记录远程仓库的地址和公钥的文件

转载自:https://juejin.cn/post/6989120899228270599
评论
请登录