我正在尝试在CentOS服务器上执行简单的git clone https://github.com/org/project.git
,但是遇到了以下错误:
错误:访问https://github.com/org/project.git/info/refs时返回错误401
致命错误:HTTP请求失败
它从未提示我输入用户名/密码,只是失败了。
我可以在我的Mac上轻松地进行完全相同的调用-我错过了什么吗?
我正在尝试在CentOS服务器上执行简单的git clone https://github.com/org/project.git
,但是遇到了以下错误:
错误:访问https://github.com/org/project.git/info/refs时返回错误401
致命错误:HTTP请求失败
它从未提示我输入用户名/密码,只是失败了。
我可以在我的Mac上轻松地进行完全相同的调用-我错过了什么吗?
git clone https://github.com/org/project.git
做:
git clone https://username@github.com/org/project.git
或(不安全)
git clone https://username:password@github.com/org/project.git
ps u -u $you
在您的计算机上看到,并且默认情况下将以明文形式出现在您的shell历史记录中。git config --global user.name
的细节,这就是我的问题所在! - GermanK你可以手动禁用SSL验证,然后再尝试一次。 :)
git config --global http.sslverify false
我遇到了同样的问题,错误信息和操作系统信息如下:
操作系统信息:
CentOS release 6.5 (Final)
Linux 192-168-30-213 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
错误信息:
/home/techops/pyenv/.git/
中初始化 Git 存储库失败密码:
error:
访问 https://waterdrops@github.com/pyenv/pyenv.git/info/refs 出错
fatal:
HTTP 请求失败
Git 和 Curl 版本信息:
Git 信息:Git 版本 1.7.1
Curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 协议:tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 功能:GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
调试信息:
$ curl --verbose https://github.com
- 尝试连接到 github.com 的端口 443 (#0)
- 正在尝试连接 13.229.188.59... 连接成功
- 已连接到 github.com (13.229.188.59) 的端口 443 (#0)
- 正在初始化 NSS,证书路径为:sql:/etc/pki/nssdb
- CA 文件: /etc/pki/tls/certs/ca-bundle.crt CA 路径: none
- NSS 错误 -12190
- 用户代理:curl/7.19.7(x86_64-redhat-linux-gnu)libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 主机:github.com 接受:/
TLS 握手错误,正在尝试 SSLv3... GET / HTTP/1.1
连接中断,正在尝试重新连接
- 关闭连接 #0
- 向此URL发出另一个请求:'https://github.com'
- 即将连接()到github.com的端口443 (#0)
- 尝试13.229.188.59... 已连接
- 已连接到github.com (13.229.188.59) 的端口443 (#0)
- TLS由于上一次握手失败而被禁用
- CA文件:/etc/pki/tls/certs/ca-bundle.crt CA路径:无
- NSS错误-12286
- 关闭连接 #0
- SSL连接错误 curl:(35)SSL连接错误
升级 curl、libcurl 和 nss 后,git clone 再次正常工作。下面是更新命令:
sudo yum update -y nss curl libcurl
确保您拥有 Git 版本 1.7.10 或更高版本,现在它可以正确提示输入用户名和密码。(您可以在此处下载最新版本)
我必须指定用户名才能在1.7.1版本的Git上工作:
git remote set-url origin https://username@github.com/org/project.git
经过一段时间的努力,我终于成功使用了git 1.7.1。
首先,我不得不禁用SSL,这样才能进行pull操作:
git config --global http.sslverify false
git clone https://github.com/USERNAME/PROJECTNAME.git
git remote -v
origin https://github.com/USERNAME/PROJECTNAME.git (fetch)
origin https://github.com/USERNAME/PROJECTNAME.git (push)
查看拉取和推送地址:
必须使用USERNAME@修改这些地址。
git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git
USERNAME:PASSWORD@github.....
但是不要这样做,因为这会以明文形式保存你的密码,容易被盗取。
由于防火墙限制,我不得不采用这种组合方式,因为无法使用SSH。
# use this for 64-bit
rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm'
# use this for 32-bit
rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm'
# then run this in either case
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
然后您需要启用rpmforge-extras。编辑/etc/yum.repos.d/rpmforge.repo
并在[rpmforge-extras]
下将enabled = 0
更改为enabled = 1
。该文件如下所示:
### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0 ####### CHANGE THIS LINE TO "enabled = 1" #############
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
yum update git
enabled = 0
),然后运行yum clean all
。sudo
来执行这些命令。yum install --enablerepo=rpmforge-extras git
就可以了! - alleen1我遇到了同样的问题和错误。在我的情况下,是https_proxy没有设置。 设置https_proxy环境变量解决了问题。
$ export https_proxy=https://<porxy_addres>:<proxy_port>
例子:
$ export https_proxy=https://my.proxy.company.com:8000