【问题标题】:Pushing to personal git repo over ssh: permission denied通过 ssh 推送到个人 git 存储库:权限被拒绝
【发布时间】:2019-06-09 12:33:22
【问题描述】:

我有一个带有 USB 密钥的树莓派,它可以连接到我的本地网络,其中有 512 个演出。我将它用作我个人的私人 git 存储库,因为我终于超越了 bitbucket。效果很好,除了...

我使用用户名 pi 进行 ssh,但我的 git repo 的文件和目录都归 git 所有。我观察到有时我无法推动。我会收到这样的错误:

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

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

有没有办法改变动态创建的 git 目录的组和所有者?如果我创建一个 git 用户并使用它来 ssh 到 pi 上,那会起作用吗?处理这个问题的正确方法是什么?

【问题讨论】:

    标签: git ssh permissions


    【解决方案1】:

    Git's official documentation 建议您创建一个名为 git 的用户并设置限制,以便 "git 用户只能使用 SSH 连接来推送和拉取 Git 存储库,而不能 shell 到机器上".

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

    【讨论】:

    • 谢谢!那是完美的。我显然设置错了。
    • 别担心,顺便说一下 pi 的设置很好!
    猜你喜欢
    • 2012-11-20
    • 2016-02-21
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 2014-02-01
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多