通过ssh推送到个人git repo:权限被拒绝

时间:2019-01-15 13:29:19

标签: git ssh permissions

我有一个带有USB密钥的树莓派pi和512 gigs连接到我的本地网络。我将其用作我的私人git回购,因为我最终超过了bitbucket。效果很好,除了...

我使用用户名pi进行登录,但是我的git repo拥有git所有的文件和目录。我观察到我有时会推不住。我会收到这样的错误:

  

错误:无法写入sha1文件名   ./objects/77/33acda0f90974cb73ad8b02fcd83896b3eeb94:权限被拒绝   到192.168.0.2:/srv/git/writing.git! [远程拒绝]大师->   主(无法将对象迁移到永久存储)错误:失败   将一些引用推送到'pi@192.168.0.2:/srv/git/writing.git'

我发现我可以通过将权限更改为777的可怕技巧来规避此问题,因此很明显的问题是ssh用户pi和目录用户git是不同的。新的git目录(例如上面错误中的dir 77)是由具有755权限的git动态生成的,这就是为什么我无法写入它们的原因。

是否可以更改动态创建的git目录的组和所有者?如果我创建一个git用户并将其用于ssh到pi上,那行得通吗?处理这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

Git's official documentation建议您创建一个名为git的用户并设置限制,以使git用户只能使用SSH连接来推送和拉动Git存储库,并且可以't shell on the machine”

您可以在这里找到文档: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server