You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Gitea SSH认证成功但无法推送至远程仓库问题求助

解决Gitea部署密钥无法推送代码的问题

我之前碰到过几乎一模一样的情况,给你几个针对性的排查和解决方向:

1. 检查部署密钥的写入权限(最常见原因)

Gitea的部署密钥默认是只读权限,只能拉取代码不能推送。你需要回到仓库的设置页面:

  • 进入[Organization]/[MyRepo] > 设置 > 部署密钥
  • 找到你添加的那个远程用户SSH密钥,点击编辑
  • 确认勾选了Allow write access(允许写入权限)选项,保存后再尝试git push -u origin master

2. 确认部署密钥的关联对象正确

要确保你是把密钥添加到目标仓库的部署密钥列表里,而不是个人账号的SSH密钥或者其他仓库的部署密钥。如果密钥关联错了仓库,自然会出现权限拒绝的问题。

3. 验证Gitea存储目录的权限(Gentoo环境)

因为你的Gitea运行在git用户下,需要确保git用户对仓库的存储目录有读写权限:

  • 打开Gitea服务器的终端,执行命令查看目标仓库的权限:
    ls -ld /var/lib/gitea/repositories/[Organization]/[MyRepo].git
    
  • 确保目录的所有者或所属组是git,如果不是,可以用下面的命令修正:
    chown -R git:git /var/lib/gitea/repositories/[Organization]/[MyRepo].git
    

4. 强制指定SSH密钥测试(远程服务器端)

有时候远程服务器的SSH配置会默认使用其他密钥,导致实际连接Gitea的密钥不是你添加的部署密钥。可以强制指定密钥测试:

  • 在远程服务器的普通用户终端执行:
    ssh -i ~/.ssh/你的部署密钥文件名 git@[gitea_server_ip]
    
  • 确认认证成功后,再执行git push -u origin master,看是否能正常推送。

内容的提问来源于stack exchange,提问作者Tarkaros

火山引擎 最新活动