Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur « fatal : impossible de lire le nom d'utilisateur pour « https://github.com » : aucun appareil ou adresse de ce type » lors du clonage des dépôts GitHub privés dans Docker ?

Comment résoudre l'erreur « fatal : impossible de lire le nom d'utilisateur pour « https://github.com » : aucun appareil ou adresse de ce type » lors du clonage des dépôts GitHub privés dans Docker ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-16 13:26:03894parcourir

How to Resolve

Docker : résolution des problèmes clés SSH de GitHub pour le clonage de dépôts privés

Lors de la tentative d'exécution d'un conteneur qui utilise un service Golang à partir d'un GitHub privé référentiel, vous pouvez rencontrer des erreurs pendant le processus de récupération. L'une de ces erreurs est liée à des problèmes de lecture de la clé publique GitHub SSH.

Problème :
Lors de l'exécution, allez sur github.com// dans un Dockerfile, le processus échoue avec l'erreur : "fatal : impossible de lire le nom d'utilisateur pour 'https://github.com' : aucun appareil ou adresse de ce type."

Cause :
Cette erreur indique que le Dockerfile n'est pas correctement configuré pour s'authentifier auprès de GitHub à l'aide de SSH. La commande ssh-keyscan révèle une incompatibilité entre la clé publique et l'enregistrement de l'hôte distant.

Solution :
Pour résoudre ce problème, vous devez ajouter une commande git config à votre Dockerfile qui force l'utilisation de SSH au lieu du protocole HTTPS par défaut pour le clonage GitHub. Voici un exemple de Dockerfile qui intègre ce correctif :

FROM golang

RUN apt-get update && apt-get install -y ca-certificates git-core ssh

ADD keys/my_key_rsa /root/.ssh/id_rsa
RUN chmod 700 /root/.ssh/id_rsa
RUN echo "Host github.com\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config
RUN git config --global url.ssh://git@github.com/.insteadOf https://github.com/

ADD . /go/src/github.com/myaccount/myprivaterepo

RUN go get github.com/myaccount/myprivaterepo
RUN go install github.com/myaccount/myprivaterepo

Ce Dockerfile révisé garantit que SSH est utilisé pour le clonage de GitHub, corrigeant l'erreur liée à la lecture de la clé publique. Il comprend également les étapes nécessaires pour installer SSH et configurer la clé d'identité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn