Description
Description
When using the LFS Pure SSH protocol, the "download"
links in the batch
responses are generated using setting.AppURL
(aka ROOT_URL
). While this makes sense for the classic hybrid transport mode where the LFS client needs to connect to the externally facing API URLs to download objects, in the SSH protocol case, subsequent LFS download
requests are being originated from the SSH server node.
This causes a number of problems:
- One major reason to use the SSH protocol in the first place is to avoid having to publicly expose the HTTP LFS endpoints in the first place. However, as implemented, the server side SSH protocol implementation will still try to access the public endpoints (unlike other code which needs to talk to the main Gitea service, which will use
LOCAL_ROOT_URL
, which can bypass a reverse proxy in front if Gitea. ROOT_URL
might not be even accessible from the SSH server node, which will cause obscure failures when cloning a repository (LFS: got status 500 when fetching OID
)
Gitea Version
1.23.5
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Self-hosted setup running behind a HTTPS reverse proxy and using OpenSSH for SSH. Both SSH, the reverse proxy and Gitea are running on the same machine, but because of some unrelated peculiar network configuration, the external URL (ROOT_URL
) is not accessible locally.
Database
SQLite