J'essaie de faire un simple git clone https://github.com/org/project.git
sur une boîte CentOS mais obtenez:
erreur: l'URL demandée a renvoyé l'erreur: 401 en accédant à https://github.com/org/project.git/info/refs
fatal: la requête HTTP a échoué
Il ne me demande jamais mon nom d'utilisateur/mot de passe, échoue simplement.
Je peux passer exactement le même appel sur mon Mac sans problème. Qu'est-ce qui me manque?
La réponse était simple mais pas évidente:
Au lieu de:
git clone https://github.com/org/project.git
do:
git clone https://[email protected]/org/project.git
ou (non sécurisé)
git clone https://username:[email protected]/org/project.git
(Notez que dans le dernier cas, votre mot de passe sera peut-être visible par d'autres utilisateurs de votre ordinateur en exécutant ps u -u $you
et apparaîtra en texte clair dans l'historique de votre shell par défaut)
Les 3 méthodes fonctionnent sur mon Mac, mais seules les 2 dernières fonctionnent sur la machine Linux distante. (En y repensant, c’est probablement parce que j’avais un nom d’utilisateur global git installé sur mon Mac, alors que je ne l’avais pas fait sur la machine distante? C’est peut-être le cas, un nom d'utilisateur m'a fait trébucher ...)
Je n'ai jamais vu cela documenté, alors le voici.
Vous pouvez désactiver manuellement la vérification SSL, puis réessayer. :)
git config --global http.sslverify false
Assurez-vous que vous avez Git 1.7.10 ou version ultérieure, il demande maintenant l’utilisateur/mot de passe correctement. (Vous pouvez télécharger la dernière version ici )
Je devais spécifier un nom d'utilisateur pour travailler sur la version 1.7.1 de Git:
git remote set-url Origin https://[email protected]/org/project.git
J'ai rencontré le même problème, le message d'erreur et les informations du système d'exploitation sont les suivants
Informations sur le système d'exploitation:
CentOS version 6.5 (finale)
Linux 192-168-30-213 2.6.32-431.el6.x86_64 # 1 SMP ven. Nov. 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
info d'erreur:
Référentiel Git vide initialisé dans /home/techops/pyenv/.git/ Mot de passe: erreur: lors de l'accès https: //[email protected]/pyenv/pyenv.git/info/refs
fatal: la requête HTTP a échoué
informations sur la version de git & curl
informations sur git: version 1.7.1 de git
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 Protocoles: tftp ftp telnet dict ldap ldaps fichier http https ftps scp sftp Caractéristiques: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
débogage
$ curl --verbose https://github.com
- A propos de la connexion () au port 443 de github.com (# 0)
- Trying 13.229.188.59 ... connecté
- Connecté au port 443 (# 0) de github.com (13.229.188.59)
- Initialisation de NSS avec certpath: sql:/etc/pki/nssdb
- CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: aucun
- Erreur NSS -12190
Erreur lors de l'établissement de la liaison TLS lors de l'essai de SSLv3 ... Agent utilisateur GET/HTTP/1.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 Hôte libssh2/1.4.2: github.com Accepter: /
La connexion est morte, réessayant une nouvelle connexion
- Fermeture de la connexion # 0
- Envoyez une autre demande à cette URL: ' https://github.com '
- A propos de la connexion () au port 443 de github.com (# 0)
- Trying 13.229.188.59 ... connecté
- Connecté au port 443 (# 0) de github.com (13.229.188.59)
- TLS désactivé en raison d'un précédent échec de négociation
- CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: aucun
- Erreur NSS -12286
- Fermeture de la connexion # 0
- Erreur de connexion SSL: (35) erreur de connexion SSL
après la mise à jour de curl, libcurl et nss, le clone git fonctionne à nouveau correctement, alors le voici. la commande de mise à jour est la suivante
Sudo yum update -y nss curl libcurl
J'ai été capable de faire fonctionner un git 1.7.1 après un certain temps.
Tout d'abord, je devais désactiver SSL simplement pour pouvoir extraire:
git config --global http.sslverify false
Ensuite, je pourrais cloner
git clone https://github.com/USERNAME/PROJECTNAME.git
Puis, après avoir ajouté et validé, je ne pouvais pas repousser. Donc j'ai fait
git remote -v
Origin https://github.com/USERNAME/PROJECTNAME.git (fetch)
Origin https://github.com/USERNAME/PROJECTNAME.git (Push)
pour voir les adresses pull et push:
Ceux-ci doivent être modifiés avec USERNAME @
git remote set-url Origin https://[email protected]/USERNAME/PROJECTNAME.git
Il vous demandera toujours un mot de passe, que vous pourriez ajouter avec
USERNAME:PASSWORD@github.....
Mais ne le faites pas, car vous sauvegardez votre mot de passe en texte clair pour un vol facile.
Je devais faire cette combinaison car je ne pouvais pas faire fonctionner SSH à cause des limitations du pare-feu.
Comme JERC l'a dit, assurez-vous de disposer d'une version mise à jour de git. Si vous utilisez uniquement les paramètres par défaut, lorsque vous essayez d'installer git, vous obtenez la version 1.7.1. Outre le téléchargement et l'installation manuels de la dernière version de get, vous pouvez également y parvenir en ajoutant un nouveau référentiel à yum.
De tecadmin.net :
Téléchargez et installez le référentiel 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
Ensuite, vous devez activer les extras rpmforge. Modifier /etc/yum.repos.d/rpmforge.repo
et changer enabled = 0
à enabled = 1
sous [rpmforge-extras]
. Le fichier ressemble à ceci:
### 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
Une fois cela fait, vous pouvez mettre à jour git avec
yum update git
Je ne sais pas pourquoi, mais ils suggèrent alors de désactiver rpmforge-extras (retournez à enabled = 0
) puis en cours d'exécution yum clean all
.
Très probablement, vous devrez utiliser Sudo
pour ces commandes.
C'est la réponse la plus stupide à cette question, mais vérifiez le statut de GitHub . Celui-ci m'a eu :)
J'ai eu le même problème et erreur. Dans mon cas, le https_proxy n'était pas défini. La définition de la variable d’environnement https_proxy a résolu le problème.
$ export https_proxy=https://<porxy_addres>:<proxy_port>
Exemple:
$ export https_proxy=https://my.proxy.company.com:8000
J'espère que cela aidera quelqu'un.