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 "name@xxxx.com"
comm.png
在ssh目录下出现了两个新文件
cmm.png
然后你兴高采烈的就 cat id_rsa.pub | clip 去复制了公钥贴到项目的SSH配置处
ccc.png
点击了添加之后你觉得大功告成 然后你还验证了一下 ssh -T gitxx@xxx.com 看起来还成功了呢
1490420868(1).png
然后你去pull了项目,好爽,它pull成功了,然后你心血来潮撸了几行代码就要push,然后你就被现实狠狠的打了一耳光 啪啪啪
1490420522(1).png
无情的提示了你这句话。。冷冰冰。
你一看,这特么不对啊,我百分之百生成的SSH添加进去的,怎么没有push权限,劳资被公司开除了???还提醒我用的是Deploy keys你真的不是来搞笑的么。。 这个坑,我不知道有多少人踩过,反正踩的人都很蛋疼。
其实是这样的,gitlab有两个key这事可能你在反反复复的过程中应该已经知道了,一个是SSH一个是Deploy。SSH拥有push和pull的权限,而Deploy只能pull不能push。 在Gitlab里有两个添加SSH的地方,一个在项目里,一个在Gitlab主页个人资料设置的SSH密钥里。下图就是主页那个密钥的位置
1490421364(1).png
跟在项目里的长的一样。嗯。。。 是的,你应该把SSH keys填在 Gitlab主页下的个人资料设置--SSH密钥里,在这里添加的才是SSH。在项目里添加的是Deploy 神奇么 嘤嘤嘤。如果你之前在项目里添加过,请把项目里的删掉,要不它会提示你,ssh已存在之类的。SSH添加成功大概是这样的 然后你再去验证一下 ssh -T git@xxxx.com 这次在最后welcome的是你的名字 再PUSH一下 (责任编辑:IT) |