From: "David C. Rankin" <drankinatty@gmail.com>
To: git@vger.kernel.org
Subject: Local git server can't serve https until repos owned by http, can't serve ssh unless repos owned by user after 2.45.1
Date: Sun, 16 Jun 2024 19:36:59 -0500 [thread overview]
Message-ID: <d9a83e5b-5075-47c6-85c8-e0b550cf859b@gmail.com> (raw)
All,
Security enhancement in 2.45.1 have broken ability to serve git over https
and ssh from local git server running Apache. (web server runs as http:http on
Archlinux)
The fix of adding the following to gitconfig (system-wide and per-user in
~/.gitconfig) does not solve the problem:
[safe]
directory = *
(* or the actual /srv/git/reponame.git makes no difference)
On Archlinux, all repos are served from /srv/git. This has worked well for
both https and ssh allowing repos under /srv/git to be owned by the user with
public-private ssh key. (they are members of group owning /srv/git with write
privileges)
After 2.45.1,
- git will not allow https unless the repositories are OWNED by http.
- git will not allow ssh unless the repositories are OWNED by user.
A catch-22.
I've tried every possible file repository ownership of http:user and
user:http with permissions of 0775, but no luck, it is either one or the
other. I've even tried making users members of the http group, but ssh still
refuses push unless the repository is OWNED by user.
The errors run the gamut from https attmepts:
$ git pull
fatal: unable to access 'https://www.mydomain.com/git/examples.git/': The
requested URL returned error: 500
to ssh attempts:
$ git push
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 1.01 KiB | 1.01 MiB/s, done.
Total 5 (delta 2), reused 0 (delta 0), pack-reused 0
remote: error: cannot lock ref 'HEAD': Unable to create
'/srv/git/pico.git/./HEAD.lock': Permission denied
To valkyrie:/srv/git/pico.git
! [remote rejected] master -> master (failed to update ref)
error: failed to push some refs to 'valkyrie:/srv/git/pico.git'
This was discussed on the arch-general mailing list under the thread "git
server changes - how to allow https AND ssh now that /srv/git/xxx.git must be
owned by http?" at
https://lists.archlinux.org/archives/list/arch-general@lists.archlinux.org/thread/3GCCU6QZNGRY45WMQAQEVF572AIHN646/
There was a suggestion to try a bind mount for the repositories, but that
seems like it may introduce other issues, but if that is the correct approach
I'm happy to try it.
What is the correct local-server way to now serve repositories over https
AND ssh from Apache without running into this either-or ownership problem?
(gitweb continues to work fine)
--
David C. Rankin, J.D.,P.E.
next reply other threads:[~2024-06-17 0:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-17 0:36 David C. Rankin [this message]
2024-06-17 18:47 ` Local git server can't serve https until repos owned by http, can't serve ssh unless repos owned by user after 2.45.1 Junio C Hamano
2024-06-17 21:15 ` Michal Suchánek
2024-06-25 7:24 ` Michal Suchánek
2024-06-25 16:12 ` Junio C Hamano
2024-06-25 18:34 ` Michal Suchánek
2024-06-26 13:03 ` Phillip Wood
2024-06-26 18:14 ` Junio C Hamano
2024-06-26 18:35 ` Phillip Wood
2024-06-26 18:51 ` Junio C Hamano
2024-09-25 11:34 ` Michal Suchánek
2024-08-29 20:34 ` Joey Hess
2024-07-26 0:38 ` Jamie Landeg-Jones
2024-07-26 5:58 ` David C. Rankin
2024-07-28 3:46 ` Jamie Landeg-Jones
2024-07-28 6:57 ` David C. Rankin
2024-08-01 0:15 ` [SOLVED] " Jamie Landeg-Jones
2024-08-02 19:31 ` Junio C Hamano
2024-06-18 1:08 ` David C. Rankin
2024-06-24 14:53 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d9a83e5b-5075-47c6-85c8-e0b550cf859b@gmail.com \
--to=drankinatty@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).