GitLab: Deploy keys are not allowed to push code.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如果你push的时候遇到这个提示,那么恭喜你,你遇到gitlab最坑逼的圈套了。
故事是这样的,有一天你老老实实的用git bash(对,你得用git bash要不很有可能就不行了,别信官方说用Windows的cmd肯定能行的话,这个坑是小,我都懒得说了)按照gitlab的文档在 .ssh下生成了id_rsa和id_ras.pub。
在.ssh目录下敲了下面的命令并熟练的点了3下回车生成SSH Key
ssh-keygen -t rsa -C "email"
点击了添加之后你觉得大功告成
然后你还验证了一下 ssh -T gitxx@xxx.com
看起来还成功了呢
然后你去pull了项目,好爽,它pull成功了,然后你心血来潮撸了几行代码就要push,然后你就被现实狠狠的打了一耳光 啪啪啪
无情的提示了你这句话。。冷冰冰。
你一看,这特么不对啊,我百分之百生成的SSH添加进去的,怎么没有push权限,劳资被公司开除了???还提醒我用的是Deploy keys你真的不是来搞笑的么。。
然后你研究了半天,重新生成重新添加重新验证 ,周而复始反反复复,可以pull不能push。于是你懵逼了。
这个坑,我不知道有多少人踩过,反正踩的人都很蛋疼。
其实是这样的,gitlab有两个key这事可能你在反反复复的过程中应该已经知道了,一个是SSH一个是Deploy。SSH拥有push和pull的权限,而Deploy只能pull不能push。
没错,你生成的确实是SSH,讲道理你也应该可以push,但是千算万算你没算到gitlab有个坑。它可能觉得你懂它,所以它没告诉你。
在Gitlab里有两个添加SSH的地方,一个在项目里,一个在Gitlab主页个人资料设置的SSH密钥里。
下图就是主页那个密钥的位置