94 votes

Impossible de cloner un repo github sous Linux via HTTPS

J'essaie de faire un simple git clone https://github.com/org/project.git sur une boîte CentOS mais j'obtiens :

erreur : L'URL demandée a renvoyé une erreur : 401 lors de l'accès à 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, il échoue simplement.

Je peux faire exactement le même appel sur mon Mac sans problème - qu'est-ce que je rate ?

216voto

Yarin Points 18186

La réponse était simple mais pas évidente :

Au lieu de :

git clone https://github.com/org/project.git

faire :

git clone https://username@github.com/org/project.git

ou (non sécurisé)

git clone https://username:password@github.com/org/project.git

(Notez que dans le dernier cas, votre mot de passe sera visible par d'autres utilisateurs sur votre machine en exécutant ps u -u $you et apparaîtra en clair dans l'historique de votre shell par défaut)

Les trois méthodes fonctionnent sur mon Mac, mais seules les deux dernières fonctionnent sur la machine Linux distante. (En y repensant, c'est probablement parce que j'ai eu une nom d'utilisateur git global configuré sur mon Mac, alors que sur le boîtier distant, je n'ai pas ? Cela aurait pu être le cas, mais l'absence d'invite pour un nom d'utilisateur m'a déconcerté... )

Je n'ai vu ce document nulle part, alors le voici.

34voto

Chu-Saing Lai Points 552

Vous pouvez désactiver manuellement la vérification ssl, et réessayer :)

git config --global http.sslverify false

13voto

Warrren Liu Points 131

J'ai rencontré le même problème, le message d'erreur et les informations sur le système d'exploitation sont les suivants

Infos sur l'OS :

CentOS version 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

info d'erreur :

Référentiel Git vide initialisé dans /home/techops/pyenv/.git/ Mot de passe : error : while accessing https://waterdrops@github.com/pyenv/pyenv.git/info/refs

fatal : la requête HTTP a échoué

Informations sur la version de git et curl

git info :git version 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 Protocoles : tftp ftp telnet dict ldap ldaps http file https ftps scp sftp Caractéristiques : GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

Débogage

$ curl --verbose https://github.com

  • Sur le point de connecter() à github.com port 443 (#0)

  • Essai de 13.229.188.59... connecté

  • Connecté à github.com (13.229.188.59) port 443 (#0)

  • Initialisation du NSS avec certpath : sql:/etc/pki/nssdb

  • CAfile : /etc/pki/tls/certs/ca-bundle.crt CApath : aucun

  • Erreur NSS -12190

  • Erreur dans la prise de contact TLS, j'essaie SSLv3... GET / HTTP/1.1 User-Agent : 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 Hôte : github.com Accepter : /

  • La connexion a échoué, réessayer une nouvelle connexion

  • Fermeture de la connexion n°0

  • Envoyez une autre demande à cette URL : ' https://github.com '

  • Sur le point de connecter() à github.com port 443 (#0)

  • Essai de 13.229.188.59... connecté

  • Connecté à github.com (13.229.188.59) port 443 (#0)

  • TLS désactivé en raison de l'échec de la poignée de main précédente

  • CAfile : /etc/pki/tls/certs/ca-bundle.crt CApath : aucun

  • Erreur NSS -12286

  • Fermeture de la connexion n°0

  • Erreur de connexion SSL curl : (35) Erreur de connexion SSL

après avoir mis à jour curl , libcurl et nss , le clone git fonctionne à nouveau correctement, alors voilà. la commande de mise à jour est la suivante

sudo yum update -y nss curl libcurl

12voto

JERC Points 375

Assurez-vous que vous avez git 1.7.10 ou plus, il demande maintenant l'utilisateur/mot de passe correctement. (Vous pouvez télécharger la dernière version aquí )

10voto

Andrius Points 101

J'ai dû spécifier le nom d'utilisateur pour travailler sur la version git 1.7.1 :

git remote set-url origin https://username@github.com/org/project.git

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X