致命的: 'https://github.com'のユーザー名を読み取れませんでした:そのようなファイルまたはディレクトリはありません


95

Windowsでgit Bashを使用してコードをプルしようとすると、次の問題が発生します。

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

私はすでにここに提供されている受け入れられたソリューションを実装しようとしました:

...しかし問題は解決しません。オリジンを追加/削除した後も、同じエラーが発生します。


ユーザー名を設定しましたか?git config --global user.name "Your Name Here"
Raul Andres、

私はすでにそれを試しましたが、それは私のgitユーザー名を参照していません。ここで呼び出すgitリポジトリのユーザー名に問題があると思います。
noobie-php 2014

回避策としてSSHに切り替えると修正されるのでしょうか?albertech.blogspot.com/2016/11/…–
jar

回答:


68

こちらの手順に従ってSSHキーを設定してください:https : //help.github.com/articles/generating-ssh-keys

または

git remote add origin https://{username}:{password}@github.com/{username}/project.git

3
2番目のオプションは、「origin github」をすでに追加しているため機能しませんでした。オリジンを削除し(git remote remove origin)、回答にあるものをユーザー名とパスワードで書き込んだところ、問題なく動作しました。
P_Rein 14年

9
オリジンを削除して再度追加する代わりに、次を使用してURLを変更することもできますgit remote set-url origin https://{username}:{password}@github.com/...
Chris

10
@Chrisソリューションは機能しますが、ユーザーのgithubアカウントのパスワードを保存し、入力するだけで読み取れるようにしますgit remote -v
Jefferson Silva

クリスのオプションがうまくいきました!私はそれをジェファーソン・シルバで追跡しました、そしてそれはうまくいきました。まだerror: cannot spawn sh: No such file or directoryメッセージがあります...
TheSciGuy

14

私はまったく同じ問題に直面しました。この問題は、HTTPS URLを使用してクローンを作成し、次にWindowsでGit Bashを使用して変更をプッシュしようとしたときに発生しました。

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

ただし、SSH URLを使用してクローンを作成した場合、この問題は発生しませんでした。

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

3
わかりましたが、なぜこれが発生するのですか?
ギリ

:のでmsysgitのバグのgithub.com/msysgit/msysgit/issues/153
Fayaz

gitlabで実行されているDockerコンテナー内でこのメッセージが表示されます。基本画像はpython:3.7-slimです。したがって、Windowsとは関係ありません。
Martin Thoma

私の場合、それはssh://git.gartner.comを使用した組織のリポジトリでした
Ankush

11

代わりにこのエラーが発生する場合は注意してください。

fatal: could not read Username for 'https://github.com': No error

次に、Gitをバージョン2.16以降に更新する必要があります。


10

私にとっては、上記の提案からは何も機能せずgit pull、jenkinsシェルスクリプトから使用しましたが、どうやら間違ったユーザー名が必要です。SSHに切り替えずに修正する方法を見つける前に、私は何年も過ごしました。

ユーザーのフォルダーに.gitconfigファイルを作成し(まだ持っていない場合)、資格情報を次の形式で入力します:https://user:pass@example.com、詳細情報。.gitconfigファイルがこれらの資格情報にリンクした後、私の場合は次のようになりました:

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

これで、gitは何があっても常にこれらの資格情報を使用します。それが私を助けてくれたように、それが誰かを助けることを願っています。


私にとっては、作業ディレクトリに入れ[credential] helper = store --file /..../.git-credentialsたときにのみ機能しました.git/config
Kirill Oficerov

5

私はここに私の答えを見つけまし

~/.gitconfig以下を編集して追加します。

[url "git@github.com:"]
 insteadOf = https://github.com/

別の問題は解決しますが、エラーコードは同じです...


4

続行する場合は、sshの代わりにhttpsを使用し、セキュリティ上の理由からユーザー名とパスワードを入力しないでください。

あなたも試すことができGithubのOAuthのトークンを、あなたが行うことができ、 git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git' または git remote add origin 'https://{token}@github.com/{username}/{project}.git'

これは私にとってはうまくいきます!


4

このエラーは、無効なHTTP URLを複製しようとしたときにも発生する可能性があります。たとえば、これは数文字ずれたGitHub URLを複製しようとしたときに発生したエラーです。

$ 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/'

ただし、実際にはEmacs内で発生したため、Emacsのエラーは次のようになりました。

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

そのため、そのURLにそのようなレポはなかったという有益なエラーの代わりに、URLが正しくないことに気付くまで、野生のガチョウ追跡で私を送りました。

これはgitバージョン2.7.4です。

これは1か月前と今にも同じように発生したため、ここに投稿します。同じ野生のガチョウの追跡を繰り返し送信します。> :(


3

短い答え:

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

新しいリポジトリでない場合、最初の3行を無視します。

長い説明:

同じ問題がありましたが、上記の回答のどれも役に立たなかったので、この解決策を投稿することにしました。

いくつかのメモ:

  • SSHキーが生成されました
  • SSHキーがgithubに追加されましたが、まだこのエラーがありました。
  • このプロジェクト用にGitHubに新しいリポジトリを作成し、説明されている手順に従いました

コマンドラインツールとして、GitShellを使用しました(Windowsの場合、MacではTerminal.appを使用しています)。
GitShellは公式のGitHubツールであり、https: //windows.github.com/からダウンロードできます。

これが同じ問題を抱えている人に役立つことを願っています。


2

新しいバージョンのGitをインストールしてこれを修正しました。インストールしたバージョンはhttps://git-scm.comの 2.10.2 です。ここの最後の投稿を参照してください:https : //www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https

新しいGit Bashでは、資格情報マネージャーウィンドウがポップアップ表示され、ユーザー名とパスワードを入力できます。


1

これは、システム資格情報キャッシュに保存されている資格情報の問題です。おそらく、設定変数 'c​​redential.helper'をwincredまたはwinstoreに設定していて、それをクリアできません。コントロールパネルを起動して資格情報マネージャーアプレットを起動する場合は、「git:https : //github.com」というラベルが付いた汎用資格情報セクションでアイテムを探します。これらを削除すると、は次に再作成されますが、資格情報ヘルパーユーティリティが新しい資格情報を要求します。


どのツールを参照していますか。現在Bash for Windowsを使用しています
noobie-php

はい。CredentialManagerコントロールパネルアプレットをご覧ください。前述のように何もない場合は、設定を確認してくださいgit config --global -l | grep credential。出力がある場合、それはプッシュ時にサーバーに保存された資格情報をフィードしようとしているユーティリティです。
patthoyts 2014

1
私はこのありえないが、問題は、私はあなたが私は、言うことをしようとしています何を取得することができ、説明させて考えるメイト、このgitのレポリンクに接続されていたが、トラブルを作っている、私は自分のユーザー名がここでトラブルを作っていると思ういけません。私が知る限り、クレデンシャルマネージャーはリポジトリのクレデンシャルではなく、個人のクレデンシャルの管理に役立ちます。git remote add origin https://github.com/username/Hello-World.gitusername
noobie-php

1

次のようにリモートURLを置き換えます。

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

他のすべての投稿は、リモートURLにパスワードを入力することを示しており、ディスクにプレーンテキストで保存されます。ユーザー名のみが必要です。資格情報ストアはgithubのユーザー名/パスワードを要求し、自動的に使用されるように安全に保存します。

1

TL; DR:に読み書きできるかどうかを確認します/dev/tty。いいえsu、シェルを開くのに使用したことがある場合は、それを正しく使用したかどうかを確認してください。

私は同じ問題に直面していましたが、Linux上で問題を発見しました。資格情報を保存していないので、常にプロンプ​​トで入力します。

Username for 'https://github.com': foo
Password for 'https://foo@github.com': 

gitがhttp(s)接続を処理する方法の使用方法は、/usr/lib/git-core/git-remote-https ここでstraceを参照できます。

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 +++

だから私はそれを直接呼び出そうとしました:

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

そして結果:

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 +++

そしてここにそれが私に来ました:

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経由で認証情報を読み込もうとする/dev/ttyので、機能するかどうかをテストしました。

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

しかし、別のターミナルでは:

# echo ahoj > /dev/tty
ahoj

を使用してこのユーザーに切り替えたsuので、シェルを終了して方法を確認し、コマンドを使用していることを確認したsu danman -ので、もう一度テストしました。

~# 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

私はおそらくメッセージを無視して作業を続けましたが、これが理由でした。私が正しいsu - danmanものを使って切り替えたとき、すべてがうまくいきました:

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

この後、gitは正常に動作し始めました


1

Jenkinsパイプラインでこのエラーが発生した場合は、SSHエージェントプラグインを使用して修正できます。次に、gitコマンドを次のようにラップします。

sshagent(['my-ssh-key']) {
    git remote set-url origin git@github.com:username/reponame.git
    sh 'git push origin branch_name'
}


0

以前、リポジトリにアクセスする権限が与えられなかったとき、SSH公開キーをgitlabに追加していました。リポジトリにアクセスしてgo modベンダーを実行できた時点で、あなたと同じ問題が発生しました。(おそらくキャッシュのため)

go mod vendor

go: errors parsing go.mod:
/Users/macos/Documents/sample/go.mod:22: git ls-remote -q https://git.aaa.team/core/some_repo.git in /Users/macos/go/pkg/mod/cache/vcs/a94d20a18fd56245f5d0f9f1601688930cad7046e55dd453b82e959b12d78369: exit status 128:
    fatal: could not read Username for 'https://git.aaa.team': terminal prompts disabled

しばらくしてから、SSHキーを削除することにし、ユーザー名とパスワードを入力するターミナルプロンプトが表示されます。その後、すべてが大丈夫です!


0

IntelliJ IDEでも同じ問題があり、私にとって、上記の提案からは何もうまくいきませんでした。私にとってうまくいったのは、Gitリポジトリのアクセスをプライベートからパブリックに変更することです。


-1

CreativeMagicソリューションを試すと、資格情報の問題が確認されます。

プロンプト>>>「https://github.com」のユーザー名

だから、私は私の元のURLを

git remote set-url --add origin http://github.com/user/repo

そして

git push --set-upstream origin master

1
それが私が人々を決して助けない理由
tuxun
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.