无法通过HTTPS在Linux上克隆github回购
我想在CentOS盒子上做一个简单的git clone https://github.com/org/project.git
,但是得到:
错误:所请求的URL在访问https://github.com/org/project.git/info/refs时返回错误:401
致命的:HTTP请求失败
它永远不会提示我input我的用户名/密码,只是失败。
我可以在我的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的历史logging中显示为明文)
所有3种方式在我的Mac上都能正常工作,但只有最后两种方式在远程Linux机器上工作。 (回想一下,这可能是因为我在我的Mac上设置了一个全局的git用户名 ,而在远程盒上我没有?可能是这种情况,但缺less提示input用户名的提示。 。)
没有看到这个logging在任何地方,所以在这里。
您可以手动禁用ssl verfiy,然后重试。 🙂
git config --global http.sslverify false
确保你有git 1.7.10或更高版本,现在提示正确input用户名和密码。 (你可以在这里下载最新版本)
我不得不指定用户名在1.7.1 git版本上工作:
git remote set-url origin https://username@github.com/org/project.git
正如JERC所说,确保你有一个更新版本的git。 如果您只使用默认设置,当您尝试安装git时,您将获得版本1.7.1。 除了手动下载和安装最新版本的get之外,您还可以通过向yum添加新的存储库来完成此操作。
来自tecadmin.net :
下载并安装rpmforge存储库:
# 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
一旦你完成了这一点,那么你可以更新与Git
yum update git
我不知道为什么,但他们然后build议禁用rpmforge-extras(改回enabled = 0
),然后运行yum clean all
。
很可能你需要使用sudo
来执行这些命令。
在一段时间后,我能够获得git 1.7.1的工作。
首先,我不得不禁用SSL,所以我可以拉:
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
它仍然会提示你input一个密码,你可以添encryption码
USERNAME:PASSWORD@github.....
但是不要这样做,因为您将密码保存在明文中以防盗窃。
由于防火墙的限制,我不能使SSH工作,所以我不得不做这个组合。
这是这个问题的最愚蠢的答案,但检查GitHub的状态 。 这个让我:)
我有同样的问题和错误。 在我的情况下,这是https_proxy没有设置。 设置https_proxy环境variables解决了问题。
$ export https_proxy=https://<porxy_addres>:<proxy_port>
例:
$ export https_proxy=https://my.proxy.company.com:8000
希望这有助于某人。