Невозможно клонировать репозиторий 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 работать из-за ограничений брандмауэра.

Ответ 8

У меня были те же проблемы и ошибки. В моем случае это не был https_proxy. Установка переменной среды https_proxy исправила проблему.

$ export https_proxy=https://<porxy_addres>:<proxy_port>

Пример:

$ export https_proxy=https://my.proxy.company.com:8000

Надеюсь, что это поможет кому-то.