在使用gitee或者github的时候,除了通过账户密码认证以访问仓库,更加推荐和安全的做法还是使用ssh密钥。
1,本地生成ssh密钥对
安装完成git之后打开git bash或者命令行,输入命令:
ssh-keygen -t rsa -C"密钥名"
密钥名自己取,可以是邮箱也可以是随意的命名。
然后连按三次回车,密钥对就生成了!
在C:\Users\你的用户名\.ssh
目录下可以看到生成的密钥文件:
2,添加公钥到gitee/github上面
首先找到我们刚刚生成的公钥文件id_rsa.pub
,在C:\Users\你的用户名\.ssh
目录下,使用文本编辑器打开id_rsa.pub
文件并复制里面全部内容,这些内容即为公钥内容,需要配置到gitee或者github里面。
下面分别讲解gitee和github里面配置。
(1),gitee
在个人账户设置里面找到ssh公钥:
标题随便,公钥内容就是我们刚刚复制的公钥文件内容。
确定添加即可。
以后git clone
或者remote add
项目的地址就用项目ssh地址代替:
(2),github
其实方法差不多,在账户设置(settings)-SSH and GPG keys这一栏:
点击new ssh keys:
以后就使用项目ssh地址代替clone/remote地址:
配置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_rsa
和id_rsa.pub
,拷到新电脑的C:\Users\新电脑用户名\.ssh
目录下即可。linux系统拷贝到/home/你的用户名/.ssh
文件夹下即可,用户文件夹下没有.ssh
文件夹就创建一个。
说白了只要把公私钥文件放在用户目录下的.ssh文件夹下即可。
4,提示远程密钥变化报错问题解决
有时我们在推送/拉回代码时,可能会出现以下情况导致我们操作失败:
这是由于验证远程证书失败导致。
我们还是找到用户文件夹中的.ssh
文件夹,即位于C:\Users\你的用户名\.ssh
下,找到其中的known_hosts
和known_hosts.old
,将这两个文件删除即可。
然后再重新操作就不会出现这个问题了!
known_hosts
文件是用于记录远程仓库的地址和公钥的文件