mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 02:24:21 -05:00
SSH Keys Not Accepted After Migration #12555
Closed
opened 2025-11-02 10:13:55 -06:00 by GiteaMirror
·
14 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
type/bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#12555
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @inferenceus on GitHub (Feb 28, 2024).
Description
Firstly, I'd like to state that I've attempted fixes for hours for SSH at this point since I thought it was related to that, and it may be; however, I have changed nothing in relation to clients, and have checked multiple times across everything to ensure client SSH configurations and keys etc are correct. The clients' keys are also added to ssh-agent as they were before the migration. I have also deleted and added the same keys back to the clients via the web UI, and verified the keys.
Whenever I attempt to either push to or clone repositories from the new server after migrating the Gitea configurations, database, and
/var/lib/gitea/directory, I receive the following error:This occurs to multiple clients. I have checked the
/var/lib/gitea/.ssh/authorized_keysfile and everything seems correct in there, too. I'm unsure what to do at this point as everything seems fine, yet it's still not accepted. To clarify, the repositories do exist and I can log into the Gitea web UI as the clients which are failing via SSH to view them there; all issues are also intact.Gitea Version
1.21.7
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.43.0
Operating System
Gentoo Linux
How are you running Gitea?
Compiled from source via Gentoo Linux's package manager.
Database
PostgreSQL
@inferenceus commented on GitHub (Feb 28, 2024):
As an update to this issue, I found a small issue with the
/var/lib/gitea/.ssh/directory; the permissions were set to750rather than700. After setting the permissions correctly, it still fails, but I get a different error:The
/var/lib/gitea/.ssh/authorized_keysfile is set to600.@jolheiser commented on GitHub (Feb 28, 2024):
Do you have logs or a config you can redact and upload?
As well, can you attempt to SSH into
git@src.inferencium.netdirectly? You should get a message@inferenceus commented on GitHub (Feb 28, 2024):
SSH debug information via
GIT_SSH_COMMAND="ssh -vvv" git push:@inferenceus commented on GitHub (Feb 28, 2024):
@jolheiser
@jolheiser commented on GitHub (Feb 28, 2024):
That tells me you aren't quite getting to Gitea, it must be somewhere in between the openssh side of things.
Some common issues/fixes are documented at https://docs.gitea.com/next/help/faq#ssh-issues if you hadn't come across that page yet.
@inferenceus commented on GitHub (Feb 28, 2024):
@jolheiser
There's actually been 2 migrations I've performed today (public server and internal server) and both systems are behaving the same way; they're even on different subnets (internal is
10.0.0.0, public is10.1.0.0). What could potentially have changed between the migrations? The clients and servers have identical SSH configurations as before the migrations occurred. Connecting via SSH asrootworks, so it seems to be something related to thegituser, no?@jolheiser commented on GitHub (Feb 28, 2024):
I'd be curious to know if it's related to your issue earlier today.
Is the environment set up such that it's finding the correct .ssh directory?
It's interesting that attempting to access a repo gives an error indicative of Gitea, but direct ssh isn't giving the correct error about lack of shell. Did the docs page give any other ideas to try or logs with more info?
@inferenceus commented on GitHub (Feb 28, 2024):
@jolheiser
Potentially. While that issue was resolved, perhaps there's a configuration file line I need to change along with the previous one? I haven't touched the SSH section until earlier today since everything just used to work. I will also say that I didn't have this issue when I migrated from Gitea to Forgejo last year. I'm not saying this is a Gitea issue, because I don't think it is; they even share the same core codebase as of their version 1.21.5-0. This is a migration from Forgejo back to Gitea. I'm trying to think of what didn't happen last migration which did happen this time, or what did happen last time which hasn't happened this time.
If you refer to the previous issue I had regarding SSH, which was resolved, I set that to be
/var/lib/gitea/.ssh/and I got Gitea running other than this current issue.And I can SSH as
root, which makes me think it's related to Gitea and/or thegituser.Nothing on the docs page gave me any indication of what could be wrong. I'm happy to provide logs; what would you need? Router log, process log, error log (which was empty last time I checked)?
@inferenceus commented on GitHub (Feb 28, 2024):
@jolheiser
I've just looked through
/etc/passwdas it's the only place I thought of which I haven't looked today.githas a shell (/bin/sh, as usual), but the home directory was set to/var/lib/forgejo/. Pushing now works. This isn't a bug, it was a misconfiguration due to that single file I missed during the migration.Thanks for the very responsive assistance as always.
@jolheiser commented on GitHub (Feb 28, 2024):
Aha, good to know for reference. Happy to help!
@inferenceus commented on GitHub (Feb 28, 2024):
@jolheiser
Despite being a security researcher, you'd be surprised at how many times the
700permissions get me with.ssh/directories. This time, it was something else. These things are so small, I wouldn't blame anyone during migrations for missing a file like this, because there's so much to do, but yes, it was my bad, but now we both know that/etc/passwdcould always be a suspect for this issue in future.@lunny commented on GitHub (Feb 28, 2024):
Maybe we can have some checks on
gitea doctorfor the file permissions.@inferenceus commented on GitHub (Feb 28, 2024):
@lunny
This would be useful. Sanity checks make a huge difference for debugging.
@inferenceus commented on GitHub (Feb 28, 2024):
Perhaps also add checks for a working shell and home directory? I don't know how difficult it would be to implement this stuff, but it likely would have made this issue self-explanatory had they existed.