首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用nginx &openssh服务器安装Gitea SSH

用nginx &openssh服务器安装Gitea SSH
EN

Server Fault用户
提问于 2019-09-02 21:32:49
回答 1查看 3K关注 0票数 0

我刚刚安装了我的第一个本地Gitea服务器,除了SSH之外,一切正常。正常的SSH可以正常工作,但当我试图与Gitea交互时就不行了。

显示的网址是ssh://git@gitea.xxx.local:123/user/hello-world.git,为什么是"git@"?我的用户名不是"git“,但是Gitea服务器作为用户"git”运行。如果我将"git“更改为我的真实用户名,我至少可以成功地使用我的私有SSH密钥进行身份验证。如何修正URL以显示正确的用户名?

然而,如果我尝试git clone,我总是得到fatal: '/user/hello-world.git' does not appear to be a git repository

这是我的gitea/app.ini文件:

代码语言:javascript
复制
[server]
ROOT_URL         = https://gitea.xxx.local/
DOMAIN           = gitea.xxx.local
HTTP_PORT        = 3000
SSH_DOMAIN       = gitea.xxx.local
SSH_PORT         = 123
DISABLE_SSH      = false

Gitea只监听localhost,我使用nginx作为从:443:3000的反向代理,这对于web很好,但对SSH却不起作用。

操作系统服务器正在监听:123,我可以在那里成功地进行身份验证。如何将SSH连接转发到内部Gitea服务器?也和nginx一起?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-09-02 21:39:04

这是大多数Git服务器的正常和预期行为,看看GitLab给您的SSH克隆URL,您将看到它也使用git用户。

这是因为如果您的git服务器以git用户的身份运行,它需要能够访问、查看、维护并最终删除存储库中的文件。

当您通过Gitea接口添加SSH密钥时,它将向没有SSH特权的git用户添加一个授权密钥(端口转发、pty等)。以及一个强制命令,它将回调到Gitea,让它知道它试图访问哪个存储库的用户。然后,它将决定如何处理它,是否授权它,并最终将信息传递给Git以合并到存储库中。

编辑:要解决no repository部分:同样,这是正常的和预期的,因为git存储库实际上位于git用户的主文件夹中。因此,当您尝试从git用户访问group/repo.git时,git用户扩展为/home/git/group/repo.git的绝对路径,但如果以user身份登录,则会扩展到可能不存在的/home/user/group/repo.git,如果存在,则可能不一样。(用户家园就是例子,在生产上可能会有所不同)

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/981615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档