web-dev-qa-db-fra.com

fatal: impossible de lire le nom d'utilisateur pour 'https://github.com': aucun fichier ou répertoire de ce type

J'ai le problème suivant lorsque j'essaie d'extraire du code, en utilisant GIT Bash sous Windows

J'ai déjà essayé d'implémenter la solution acceptée fournie ici:

mais le problème persiste. Après avoir ajouté/supprimé Origin, je reçois toujours la même erreur. 

fatal: could not read Username for 'https://github.com': No such file or directory
51
noobie-php

Suivez les étapes pour configurer les clés SSH ici: https://help.github.com/articles/generating-ssh-keys

OR

git remote add Origin https://{username}:{password}@github.com/{username}/project.git
40
Tony Zampogna

J'ai fait face au même problème. Ce problème s'est produit lorsque j'ai cloné à l'aide de l'URL HTTPS, puis que j'ai essayé de transmettre les modifications à l'aide de Git Bash sous Windows à l'aide de:

git clone https://github.com/{username}/{repo}.git

Cependant, lorsque j'ai utilisé l'URL SSH pour cloner, ce problème ne s'est pas produit:

git clone [email protected]:{username}/{repo}.git
8
Fayaz

Si vous obtenez plutôt cette erreur:

fatal: impossible de lire le nom d'utilisateur pour ' https://github.com ': aucune erreur

Ensuite, vous devez mettre à jour votre Git vers la version 2.16 ou ultérieure.

6
Rosdi Kasim

Réponse courte:

git init
git add README.md
git commit -m "first commit"


git remote add Origin https://github.com/{USER_NAME}/{REPOSITORY_NAME}.git
git Push --set-upstream Origin master

Ignore les trois premières lignes s'il ne s'agit pas d'un nouveau référentiel.

Description plus longue:

Juste le même problème, car aucune des réponses ci-dessus ne m'a aidé, j'ai décidé de poster cette solution qui a fonctionné pour moi.

Quelques notes:

  • La clé SSH a été générée
  • La clé SSH a été ajoutée à github, avait encore cette erreur.
  • J'ai créé un nouveau référentiel sur GitHub pour ce projet et suivi les étapes décrites

En tant qu'outil de ligne de commande, j'ai utilisé GitShell (pour Windows, j'utilise Terminal.app sur Mac).
GitShell est un outil officiel de GitHub, peut être téléchargé à partir de https://windows.github.com/

J'espère que cela aide à tous ceux qui ont le même problème.

3
Creative Magic

TL; DR: vérifiez si vous pouvez lire/écrire dans /dev/tty. Si non et que vous avez utilisé su pour ouvrir le shell, vérifiez si vous l'avez utilisé correctement.

Je faisais face au même problème mais sous Linux et j'ai trouvé le problème. Je n'ai pas mes informations d'identification stockées, donc je les saisis toujours dans l'invite:

Username for 'https://github.com': foo
Password for 'https://[email protected]': 

La manière dont git traite les connexions http (s) utilise /usr/lib/git-core/git-remote-https, vous pouvez voir strace ici:

stat("/usr/lib/git-core/git-remote-https", {st_mode=S_IFREG|0755, st_size=1366784, ...}) = 0
pipe([9, 10])                           = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f65398bb350) = 18177
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(10)                               = 0
read(9, "", 8)                          = 0
close(9)                                = 0
close(5)                                = 0
close(8)                                = 0
dup(7)                                  = 5
fcntl(5, F_GETFL)                       = 0 (flags O_RDONLY)
write(6, "capabilities\n", 13)          = 13
fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
read(5, "fetch\noption\npush\ncheck-connecti"..., 4096) = 38
write(6, "option progress true\n", 21)  = 21
read(5, "ok\n", 4096)                   = 3
write(6, "option verbosity 1\n", 19)    = 19
read(5, "ok\n", 4096)                   = 3
stat(".git/packed-refs", {st_mode=S_IFREG|0664, st_size=675, ...}) = 0
lstat(".git/objects/10/52401742a2e9a3e8bf068b115c3818180bf19e", {st_mode=S_IFREG|0444, st_size=179, ...}) = 0
lstat(".git/objects/4e/35fa16cf8f2676600f56e9ba78cf730adc706e", {st_mode=S_IFREG|0444, st_size=178, ...}) = 0
dup(7)                                  = 8
fcntl(8, F_GETFL)                       = 0 (flags O_RDONLY)
close(8)                                = 0
write(6, "list for-Push\n", 14)         = 14
read(5, fatal: could not read Username for 'https://github.com': No such device or address
"", 4096)                       = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=18177, si_uid=1000, si_status=128, si_utime=6, si_stime=2} ---
exit_group(128)                         = ?
+++ exited with 128 +++

Alors j'ai essayé de l'appeler directement:

echo "list for-Push" | strace /usr/lib/git-core/git-remote-https my

et le résultat:

poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 1 ([{fd=3, revents=POLLIN|POLLRDNORM}])
recvfrom(3, "\27\3\3\1\32", 5, 0, NULL, NULL) = 5
recvfrom(3, "\307|4Q\21\306\334\244o\237-\230\255\336\25\215D\257\227\274\r\330\314U\5\17\217T\274\262M\223"..., 282, 0, NULL, NULL) = 282
openat(AT_FDCWD, "/dev/tty", O_RDONLY)  = -1 ENXIO (No such device or address)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
read(4, "# Locale name alias data base.\n#"..., 4096) = 2995
read(4, "", 4096)                       = 0
close(4)                                = 0
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "fatal: could not read Username f"..., 83fatal: could not read Username for 'https://github.com': No such device or address
) = 83
exit_group(128)                         = ?
+++ exited with 128 +++

Et voici, il m'est venu:

openat(AT_FDCWD, "/dev/tty", O_RDONLY)  = -1 ENXIO (No such device or address)
...
write(2, "fatal: could not read Username f"..., 83fatal: could not read Username for 'https://github.com': No such device or address
) = 83

git-remote-https essaie de lire les informations d'identification via /dev/tty alors j'ai testé si cela fonctionnait:

$ echo ahoj > /dev/tty
bash: /dev/tty: No such device or address

Mais dans un autre terminal:

# echo ahoj > /dev/tty
ahoj

Je savais que je passais sur cet utilisateur en utilisant su alors je suis sorti de Shell pour voir comment et découvert que j'ai utilisé la commande su danman -, je l'ai donc testé à nouveau:

~# su danman -
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this Shell
/root$ echo ahoj > /dev/tty
bash: /dev/tty: No such device or address

J'ai probablement ignoré le message et continué à travailler, mais c'était la raison. Quand j'ai changé en utilisant le bon su - danman tout a bien fonctionné:

~# su - danman
danman@speedy:~$ echo ahoj > /dev/tty
ahoj

Après cela, git a commencé à fonctionner correctement

1
danman

Cette erreur peut également se produire lorsque vous essayez de cloner une URL HTTP non valide. Par exemple, voici l'erreur que j'ai eu lors de la tentative de clonage d'une URL GitHub contenant quelques caractères:

$ git clone -v http://github.com/username/repo-name.git
Cloning into 'repo-name'...
Username for 'https://github.com': 
Password for 'https://github.com': 
remote: Repository not found.
fatal: Authentication failed for 'https://github.com/username/repo-name.git/'

Cependant, cela s'est passé à l'intérieur d'Emacs, donc l'erreur dans Emacs ressemblait à ceci:

fatal: could not read Username for ’https://github.com’: No such device or address

Donc, au lieu d’une erreur utile disant qu’il n’y avait pas de telle prise en pension à cette URL, cela m’a donné cela, m’envoyant une poursuite effrénée jusqu’à ce que j’ai enfin réalisé que l’URL était incorrecte.

Ceci est avec la version 2.7.4 de Git.

Je poste ceci ici parce que cela m'est arrivé il y a un mois et à nouveau tout à l'heure, m'envoyant à nouveau sur la même chasse à l'oie sauvage. > :(

1
blujay

Ceci est un problème avec vos informations d'identification stockées dans le cache des informations d'identification système. La variable de configuration 'credential.helper' est probablement définie sur wincred ou winstore et elle ne parvient pas à l'effacer. Si vous démarrez le Panneau de configuration et lancez l'applet Credential Manager, recherchez des éléments dans la section des informations d'identification génériques intitulée "git: https://github.com ". Si vous les supprimez, le sera recréé la prochaine fois mais l'utilitaire d'assistance des informations d'identification vous demandera vos nouvelles informations d'identification.

1
patthoyts

J'ai trouvé ma réponse ici :

éditez ~/.gitconfig et ajoutez ce qui suit:

[url "[email protected]:"]
 insteadOf = https://gitlab.com/

Bien que cela résolve un problème différent, le code d'erreur est le même ...

1
Hitsugaya198

J'ai résolu ce problème en installant une version plus récente de Git. La version que j'ai installée est la 2.10.2 de https://git-scm.com . Voir le dernier message ici: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-toc.it-private-repository-over-https

Avec la nouvelle version de Git Bash, la fenêtre du gestionnaire des informations d'identification s'ouvre et vous pouvez entrer votre nom d'utilisateur et votre mot de passe, et cela fonctionne!

1
David Burson

Si vous souhaitez continuer, utilisez https à la place de ssh et évitez de saisir votre nom d'utilisateur et votre mot de passe pour des raisons de sécurité.

Vous pouvez également essayer Jeton Github OAuth , puis vous pouvez utiliser git config remote.Origin.url 'https://{token}@github.com/{username}/{project}.git' Ou git remote add Origin 'https://{token}@github.com/{username}/{project}.git'

Cela fonctionne pour moi!

0
Think Recursively

Remplacez votre URL distante comme ceci:

git remote set-url Origin https://<username>@github.com/<username>/<repo>.git
0
GrossesKinoZuerich

Pour moi, rien n’a fonctionné avec la suggestion ci-dessus, j’utilise git pull depuis le script jenkins Shell et apparemment, il prend un mauvais nom d’utilisateur. J'ai passé beaucoup de temps avant de trouver un moyen de résoudre ce problème sans passer à SSH. 

Dans votre dossier de l'utilisateur, créez un fichier .gitconfig (si vous ne l'avez pas déjà) et mettez vos informations d'identification au format suivant: https://user:[email protected], more info . Après que votre fichier .gitconfig ait été lié à ces informations d'identification, dans mon cas, c'était: 

[credential] helper = store --file /Users/admin/.git-credentials

Maintenant, git utilisera toujours ces informations d'identification quoi qu'il arrive. J'espère que cela aidera quelqu'un, comme cela m'a aidé.

0
Katia

Essayez d’utiliser un shell Windows normal tel que CMD.

0
Vajiheh habibi

fatal: impossible de lire le nom d'utilisateur pour ' https://github.com ': aucune erreur

Je viens d'utiliser Git pour cloner

$ git clone -v http://github.com/username/repo-name.git
Cloning into 'repo-name'...
Username for 'https://github.com': 
Password for 'https://github.com': 

C'est bon maintenant ????.

0
Steven