引言
1:clone,使用ssh方式时,首先你必须是项目的管理者或者拥有者,并且需要配置个人的ssh key,下面会谈到如何生成并设置你的SSH KEY,而对于使用https方式来讲,就没有这些要求了。
2:push, 在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key 时设置了密码,则需要验证密码,而对于使用https方式来讲,每次push 都需要验证用户名 和 密码。
为了更好的推拉代码,更好的做法是 ssh。
解决办法
1.确定你的git已设置用户名和邮箱
git config --global user.name "YourName" git config --global user.email "email@mail.com"
2.查看你的home目录下是否已经生成过ssh-key
$ ls ~/.ssh/id_rsa.pub
如果目录不存在或者没有看到id_rsa和id_rsa.pub这两个文件(注:id_rsa为默认创建名字)
新建一个ssh-key
$ ssh-keygen -t rsa -C "email@mail.com"
注:请确保email地址相同
3.向你的远程git仓库加入你的公钥(注:gitea、gitlab、github一般在用户的设置页面添加,如果远程是通过git init初始化的项目,请追加到远程机器的~/.ssh/authorized_keys 文件中)
cat .~/ssh/id_rsa.pub
4.转换本地连接远程git的地址(注:这也是git clone http://xxx.com和git clone git@xxx.com的区别,使用本方法节省删除文件以及从新克隆的时间)
在你git clone项目后,只需将.git/config文件中
url = http://xxx.com/Name/project.git
改为
url = git@xxx.com/Name/project.git
即可。
5.测试你的ssh-key
ssh -T git@xxx.com