Невозможно клонировать репозиторий github в Linux через HTTPS
Я пытаюсь сделать простой git clone https://github.com/org/project.git
в поле CentOS, но получаю:
Ошибка: запрашиваемый URL-адрес возвратил ошибку: 401 при доступе https://github.com/org/project.git/info/refs
фатальный: не удалось выполнить запрос HTTP
Он никогда не запрашивает мое имя пользователя/пароль, просто не удается.
Я могу сделать тот же самый вызов на моем Mac без проблем - что мне не хватает?
Ответы
Ответ 1
Ответ был прост, но не очевиден:
Вместо
git clone https://github.com/org/project.git
сделать:
git clone https://[email protected]/org/project.git
или (небезопасно)
git clone https://username:[email protected]/org/project.git
(Обратите внимание, что в следующем случае ваш пароль будет отображаться другими пользователями на вашем компьютере, запустив ps u -u $you
и по умолчанию будет отображаться в истории оболочки)
Все 3 способа работы на моем Mac, но только последние 2 работали в удаленном ящике Linux. (Подумав об этом, вероятно, потому, что у меня было настроено глобальное git имя пользователя на моем Mac, тогда как на удаленном ящике я не "Возможно, это было так, но отсутствие подсказки для имени пользователя помогло мне...)
Не видел, чтобы это было зарегистрировано где угодно, так что вот оно.
Ответ 2
Вы можете вручную отключить ssl verfiy и повторите попытку.:)
git config --global http.sslverify false
Ответ 3
Убедитесь, что у вас есть git 1.7.10 или новее, теперь он запрашивает пользователя/пароль правильно. (Вы можете скачать последнюю версию здесь)
Ответ 4
Мне нужно было указать имя пользователя для работы с версией 1.7.1 git:
git remote set-url origin https://[email protected]/org/project.git
Ответ 5
Как сказал 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. Измените /etc/yum.repos.d/rpmforge.repo
и измените enabled = 0
на enabled = 1
в разделе [rpmforge-extras]
. Файл выглядит следующим образом:
### 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
Я не уверен, почему, но затем они предлагают отключить rpmforge-extras (сменить обратно на enabled = 0
), а затем запустить yum clean all
.
Скорее всего, вам понадобится использовать sudo
для этих команд.
Ответ 6
Я смог получить git 1.7.1 для работы через некоторое время.
Во-первых, мне пришлось отключить SSL, чтобы я мог потянуть:
git config --global http.sslverify false
Тогда я мог бы клонировать
git clone https://github.com/USERNAME/PROJECTNAME.git
Затем после добавления и фиксации я был UNABLE для возврата.
Так что я сделал
git remote -v
origin https://github.com/USERNAME/PROJECTNAME.git (fetch)
origin https://github.com/USERNAME/PROJECTNAME.git (push)
чтобы увидеть выталкивающие и push-адреса:
Они должны быть изменены с помощью USERNAME @
git remote set-url origin https://[email protected]/USERNAME/PROJECTNAME.git
Он по-прежнему будет запрашивать пароль, который вы можете добавить с помощью
USERNAME:[email protected]
Но не делайте этого, поскольку вы сохраняете свой пароль в открытом виде для легкого кражи.
Мне пришлось сделать эту комбинацию, потому что я не мог заставить SSH работать из-за ограничений брандмауэра.
Ответ 7
Это самый тупой ответ на этот вопрос, но проверить статус GitHub. Это меня достало:)
Ответ 8
У меня были те же проблемы и ошибки. В моем случае это не был https_proxy.
Установка переменной среды https_proxy исправила проблему.
$ export https_proxy=https://<porxy_addres>:<proxy_port>
Пример:
$ export https_proxy=https://my.proxy.company.com:8000
Надеюсь, что это поможет кому-то.