Git克隆私服http仓库出现403错误解决方法

本文解决了一个常见的Nginx配置问题,即在使用Nginx作为git仓库中转时出现的403错误。通过详细检查和修改Nginx配置文件中的fastcgi_paramSCRIPT_FILENAME参数,最终定位到git-http-backend模块路径错误,并提供了正确的修改方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我用nginx作为中转git仓库的地址后。每次克隆输入完地址和用户名后总是出现403错误。

remote: 403 Forbidden
fatal: unable to access 'http://39.105.81.XXX/mmp.git/': The requested URL returned error: 403

 

因为是第一次搭建git私服的http仓库,出现这个错误也是查阅各种资料。但是都没有解决,最后只能耐着性子一点点排查nginx配置文件。

最后终于找出原因,403错误说明无法访问这个地址,而我们访问nginx的默认页面时却没说明问题。

出错的地方就呼之欲出,在nginx访问git仓库地址时出现了错误。而配置文件中恰好有一段配置是这个地方。

fastcgi_param SCRIPT_FILENAME     /usr/libexec/git-core/git-http-backend;

在找git-http-backend这个模块的时候没找到,这个地址下面并没有这个模块。所以只要修改地址就可以解决。

如果安装git时没有安装git-core这个模块,也不必惊慌。使用yum安装即可。

使用yum安装后的git-core会在/usr/libexec目录下。自己按需修改即可。

yum install git-core
=======================出错的配置文件=======================
server {
    listen      80;
    server_name git.server.com;

    client_max_body_size 100m;

    auth_basic "Git User Authentication";
    auth_basic_user_file /usr/local/nginx/conf/pass.db;

    location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
        root /data/git;
    }

    location ~ /.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
        root          /data/git;
        fastcgi_pass  unix:/var/run/fcgiwrap.socket;
        fastcgi_connect_timeout 24h;
        fastcgi_read_timeout 24h;
        fastcgi_send_timeout 24h;
        fastcgi_param SCRIPT_FILENAME     /usr/libexec/git-core/git-http-backend;
        fastcgi_param PATH_INFO           $uri;
        fastcgi_param GIT_HTTP_EXPORT_ALL "";
        fastcgi_param GIT_PROJECT_ROOT    /data/git;
        fastcgi_param REMOTE_USER $remote_user;
        include fastcgi_params;
    }

=======================修改后的配置文件=======================
其他东西不改,只要将git-http-backend地址修改为正确的即可。
        fastcgi_param SCRIPT_FILENAME     /usr/local/libexec/git-core/git-http-backend;
      

 

 

要在IntelliJ IDEA中配置Git以连接到Gogs私服,你需要设置Git仓库URL并指定正确的用户名和认证信息。以下是具体步骤: 1. 打开IntelliJ IDEA,选择"VCS"(版本控制系统)菜单,然后选择"Checkout from Version Control" -> "Git"。 2. 在弹出的"Create Git Repository"对话框中,输入或复制Gogs服务器上的项目克隆地址,通常格式为`https://<username>:<password>@<your-gogs-server>/<repository-name>.git`,这里的`<username>`和`<password>`是你的Gogs账户名和密码。 ```plaintext https://<username>:<password>@<your-gogs-server>/<repository-name>.git ``` 3. 如果IDEA提示你没有访问权限,你可以尝试创建一个新的SSH密钥对来替代HTTP基本身份验证。这可以通过打开终端(如果你的IDEA支持),然后执行以下命令完成: ```shell ssh-keygen -t rsa -C "<your-email>" ``` 将生成的公钥添加到Gogs的全局SSH key,登录到Gogs管理界面,找到你的用户账户,点击"SSH Keys",然后按照提示上传你的新生成的SSH公钥。 4. 完成上述步骤后,回到IDEA,选择刚创建的Git仓库,然后按照向导指示进行初始化和关联本地目录。 5. 为了以后能自动使用SSH连接,可以在项目的 `.git/config` 文件中手动添加SSH URL,这样就无需每次都输入用户名和密码了。打开该文件(通常位于项目根目录下),找到 `[remote "origin"]` 部分,替换 `url` 属性为SSH形式的URL: ```plaintext url = git@<your-gogs-server>:/<repository-name>.git ``` 现在,你应该能够在IntelliJ IDEA中通过SSH连接顺利地与你的Gogs私服交互,而无需频繁输入用户名和密码。如果遇到其他问题,可能需要检查SSH密钥的配置以及Gogs服务器的安全设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值