error: The requested URL returned error: 401 Unauthorized while accessing

本文介绍了解决Git操作时出现的401 Unauthorized错误的方法,并提供了详细的步骤来将CentOS上的Git从1.7.1升级到2.2.1版本。

在使用git pull、git push、git clone会报类似如下的错误:
error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.net/zemo/demo.git/info/refs
fatal: HTTP request failed

一般是由于git版本的问题。
使用如下指令查看版本:

# git --version
git version 1.7.1

可以通过安装更高的版本解决问题。

Centos Git1.7.1升级到Git2.2.1

安装需求:

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
# yum install  gcc perl-ExtUtils-MakeMaker 
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# tar zxvf libiconv-1.14.tar.gz 
# cd libiconv-1.14
# ./configure --prefix=/usr/local/libiconv
# make && make install

卸载Centos自带的git1.7.1:
通过git –version查看系统带的版本,Cento6.5应该自带的是git版本是1.7.1

# yum remove git

下载git2.2.1并将git添加到环境变量中

# wget https://github.com/git/git/archive/v2.2.1.tar.gz
# tar zxvf v2.2.1.tar.gz
# cd git-2.2.1
# make configure
# ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
# make all doc
# make install install-doc install-html
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc

查看版本号

# git --version
git version 2.2.1
### Git 请求时出现 403 错误的解决方案 当在使用 Git 请求远程仓库时,如果遇到 `403 Forbidden` 错误,通常表示客户端没有权限访问目标资源。以下是可能的原因及解决方法: 1. **SSH 密钥配置问题** 如果使用 SSH 协议连接远程仓库,可能是由于本地未正确配置 SSH 密钥或密钥无效。需要检查并重新生成 SSH 密钥,并将其添加到远程仓库的服务端(如 GitHub、GitLab 等)。可以通过以下命令生成新的 SSH 密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 然后将生成的公钥(通常位于 `~/.ssh/id_rsa.pub`)添加到远程仓库的账户设置中[^2]。 2. **HTTP/HTTPS 权限不足** 如果使用 HTTPS 协议访问远程仓库,可能是由于用户凭证无效或缺少权限。可以尝试重新配置凭据管理器,确保使用正确的用户名和密码(或个人访问令牌 PAT)。例如,在 Windows 上可以运行以下命令清除旧的凭据: ```bash git credential-manager uninstall ``` 然后重新克隆仓库,系统会提示输入新的凭据[^2]。 3. **IP 地址或网络限制** 某些远程仓库可能会限制特定 IP 地址的访问。如果从公司网络或公共 Wi-Fi 连接,可能需要联系管理员将当前 IP 添加到白名单。此外,也可以尝试切换到其他网络环境测试是否仍然出现 403 错误。 4. **仓库权限问题** 确保当前用户对目标仓库具有读写权限。如果尝试推送代码但没有写入权限,或者尝试拉取私有仓库但没有读取权限,都会导致 403 错误。可以联系仓库管理员确认权限设置。 5. **API 请求频率限制** 如果频繁调用 Git 的 API 接口,可能会触发远程服务的速率限制,从而返回 403 错误。可以检查是否超过允许的请求次数,并等待一段时间后再重试[^3]。 6. **URL 配置错误** 确保远程仓库的 URL 正确无误。可以通过以下命令查看和修改远程 URL: ```bash git remote -v git remote set-url origin <new_url> ``` ### 示例代码:重新配置 SSH 密钥 ```bash # 生成新的 SSH 密钥 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 将公钥添加到剪贴板(macOS/Linux) cat ~/.ssh/id_rsa.pub | pbcopy # 或者手动复制到远程仓库的 SSH 密钥设置中 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值