source

GitHub - fatal: 'https://github.com '에 대한 사용자 이름을 읽을 수 없음: 해당 파일 또는 디렉토리가 없습니다.

ittop 2023. 7. 1. 10:00
반응형

GitHub - fatal: 'https://github.com '에 대한 사용자 이름을 읽을 수 없음: 해당 파일 또는 디렉토리가 없습니다.

Windows에서 gitBash를 사용하여 코드를 풀하려고 하면 다음과 같은 문제가 발생합니다.

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

저는 이미 여기에 제공된 승인된 솔루션을 구현하려고 했습니다.

그러나 문제는 여전히 남아 있습니다.

오리진을 추가/제거한 후에도 동일한 오류가 발생합니다.

이 문제에 대해 조언해 주시겠습니까?

감사합니다!

다음 단계에 따라 SSH 키를 설정합니다. https://help.github.com/articles/generating-ssh-keys

OR

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

업데이트: "fatal: remote origin"이 이미 존재하는 경우.그런 다음 set-url을 사용해야 합니다.

git remote set-url origin https://{username}:{password}@github.com/{username}/project.git

저도 똑같은 문제에 직면했습니다.가 이문는반복때제발다니습생했할을을 사용하여 복제했을 때 했습니다.HTTPS URL그런 다음 변경 사항을 푸시하려고 했습니다(Linux/Mac의 Shell 또는 Windows의 Git Bash 사용).

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

, 제가 만지하를 했을 때, 제사용을때했가때을▁however.SSH URL복제할 때는 이 문제가 발생하지 않았습니다.

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

미이 경우한제복우경HTTPS그리고 모든 것을 다시 하고 싶지 않아요, 당신은 사용할 수 있습니다.set-url을 오진을 URL로 합니다.SSH URL:

git remote set-url origin git@github.com:{username}/{repo}.git

참고: 내 GitHub 계정에 SSH 키가 추가되었습니다.SSH 키를 설정하지 않으면 이 방법도 작동하지 않습니다.

그건 그렇고.git clone또는pull이러한 변경 사항 없이 작동해야 합니다.이것들은 당신이 필요할 때만 필요합니다.git push나고끝 clone.

여기서 을 찾았습니다.

편집을~/.gitconfig다음을 추가합니다.

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

다른 문제를 해결하지만 오류 코드는 동일합니다.

아래 내용만 확인해 주세요.

Android Studio -> 기본 설정 -> 버전 제어 -> Git -> 자격 증명 도우미 사용

위에서 제안한 것 중에서 작동한 것은 아무것도 없습니다. 저는 다음을 사용합니다.git pullJenkins Shell Script에서 명령을 받았는데 사용자 이름이 잘못된 것 같습니다.SSH로 전환하지 않고도 해결할 수 있는 방법을 찾기 전까지 오랜 시간을 보냈습니다.

에 . 파일생성하고 자격 증명을 다음합니다.https://user:pass@example.com 많은 정보..gitconfig 파일을 해당 자격 증명에 연결한 후에는 다음과 같습니다.

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

Git은 어떤 일이 있어도 항상 자격 증명을 사용할 것입니다.누군가에게 도움이 되길 바랍니다. 마치 저에게 도움이 된 것처럼요.

계속하려면 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'

이건 나한테 효과가 있어요!

대신 이 오류가 발생하는 경우:

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

그런 다음 Git를 버전으로 업데이트해야 합니다.2.16나중에.

이 오류는 잘못된 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입니다.

한 달 전에도 그랬고 지금도 그랬기 때문에 이 글을 올리게 되었습니다.>:(

TL에 읽기;DR: 읽쓰기/기가여확인부능/dev/tty아니오를 사용하고 사용한 경우su셸을 열려면 올바르게 사용했는지 확인합니다.

저는 같은 문제에 직면했지만 Linux에서 문제를 발견했습니다.자격 증명이 저장되어 있지 않아서 항상 프롬프트에 입력합니다.

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

가 http) 하는 방법은 git를 하는 것입니다./usr/lib/git-core/git-remote-https여기에서 트레이스를 볼 수 있습니다.

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

▁user다를 사용하여 이 사용자로 전환한 것을 알고 .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이 올바르게 작동하기 시작했습니다.

여기 있는 모든 걸 시도해봤지만 소용이 없었어요

하지만디버를시때도할그때▁도▁i▁▁to로 디버깅하려고 했을 때git config --system --list,받았습니다fatal: unable to read config file '/etc/gitconfig': No such file or directory.

그래서 저는 다음과 같이 했습니다.

sudo ln -s $HOME/.gitconfig /etc/gitconfig

그리고 voila, 효과가 있습니다.

여기에 효과적인 간단한 속임수가 있습니다.

Android studio -> 설정 -> 버전 제어 -> git -> 자격 증명 도우미 사용

즐겁게 보내세요

저는 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를 사용하면 자격 증명 관리자 창이 뜨고 사용자 이름과 암호를 입력할 수 있습니다. 그러면 작동합니다.

Jenkins 파이프라인에서 이 오류가 발생하는 경우 SSH 에이전트 플러그인을 사용하여 해결할 수 있습니다.그런 다음 git 명령을 다음과 같은 형식으로 묶습니다.

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

단답:

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

새 리포지토리가 아닌 경우 처음 세 줄은 무시합니다.

더 긴 설명:

방금 같은 문제가 있었습니다. 위의 답변 중 어떤 것도 도움이 되지 않았기 때문에, 저는 저에게 효과가 있는 이 솔루션을 게시하기로 결정했습니다.

몇 가지 참고 사항:

  • SSH 키가 생성되었습니다.
  • SSH 키가 GitHub에 추가되었지만 여전히 이 오류가 발생했습니다.
  • 나는 이 프로젝트를 위해 GitHub에 새 저장소를 만들고 설명된 단계를 따릅니다.

명령줄 도구로 GitShell을 사용했습니다(Windows의 경우 Mac에서는 Terminal.app을 사용합니다).
GitShell은 공식 GitHub 도구이며, https://windows.github.com/ 에서 다운로드할 수 있습니다.

원격 URL을 다음과 같이 바꿉니다.

git remote set-url origin https://<username>@github.com/<username>/<repo>.git
[SSH] executing...
fatal: could not read Username for 'https://github.com': No such device or address

[SSH] completed
[SSH] exit-status: 1

Build step 'Execute shell script on remote host using ssh' marked build as failure
Finished: FAILURE

Sol:- 저장소가 비공개이고 다른 사용자 또는 조직에 속해 있으며 해당 저장소의 기여자인 경우 Jenkins 작업에서 git 명령을 실행할 수 있으며 사용자 이름과 암호를 입력하라는 메시지가 표시되지 않습니다.

https://filename:token@github.com /accountname/reponame.git

제 경우 GitHub 아래에 "개인 액세스 토큰"을 설정해야 했습니다.

  1. 설정 -> 개발자 설정

  2. SSO를 사용하도록 설정합니다.

는 사용중을 하고 있습니다.GitHub actionsjobs태스크를 수행하도록 구성됩니다.이 솔루션은 git 명령 실행 환경이 변경되는 모든 CI(Jenkins, Travis, Circle)에 적용됩니다.

job1: actions github을 합니다.actions/checkout@v2개인 액세스 토큰(PAT)을 사용하면 작업이 성공적으로 완료되고 리포지토리가 복제됩니다.

job2:" " 를 가져옵니다.git fetch --tags했습니다.

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

실패 이유:작업이 변경되면 저장소가 있지만 태그를 가져오려면 github 자격 증명을 제공해야 하지만 명령 실행 환경도 변경됩니다.

" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "job2

git config remote.origin.url 'https://${{ your_personal_access_token }}@github.com/${{ github.repository }}'

참고:${{ expression }}는 환경 변수를 파악하기 위한 github 작업 yaml 구문입니다/ 식을 실행합니다.

이것은 시스템 자격 증명 캐시에 저장된 자격 증명과 관련된 문제입니다. 'incential'이을수helper있습다니있수변helper.''가 못하고 있습니다.도우미'가 wincred 또는 winstore로 설정되어 있으며 이를 지우지 못하고 있습니다. 애플릿을 인증 섹션에서 .git:https://github.com이러한 자격 증명을 삭제하면 다음에 다시 생성되지만 자격 증명 도우미 유틸리티는 새 자격 증명을 묻는 메시지를 표시합니다.

CMD와 같은 일반 윈도우즈 셸을 사용해 보십시오.

이전에 repo에 액세스할 수 있는 권한이 부여되지 않았을 때, 나는 또한 SSH pubkey를 gitlab에 추가했습니다.그 시점에서 저는 repo에 접속하여 당신과 같은 문제가 발생하는 Good vendor를 실행할 수 있었습니다.(캐시 때문일 수 있음)

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 키를 제거하고 사용자 이름과 암호를 입력하는 터미널 프롬프트를 표시합니다.그때는 모든 것이 좋습니다!

저장소 URL을 다시 확인하면, Github은 repo가 존재하지 않는 경우 로그인하라는 메시지를 표시합니다.

제 생각에 이것은 아마도 당신이 접근할 수 있는 개인 레포인지 확인하기 위한 것 같습니다.개인 저장소를 열거하는 것을 어렵게 만들 수 있습니다.하지만 이것은 모두 추측입니다./timeout

감옥에서 이 . 그곳에서 저는 ssh옥(jailkit)에서 이 문제를 겪었습니다./dev/tty참석하지 않았습니다.로 이 .jk_cp의 파일입니다.

캐시 무효화를 해제하고 클린 빌드가 도움이 되어 답을 얻었습니다.

  1. 'File > Invalidate Cache / Restart'를 선택한 후 'Invalidate and Restart' 버튼을 클릭합니다.
  2. Build > Clean Project를 선택한 후 Build > Rebuild Project를 선택합니다.

이 오류가 발생하는 사용자의 간단한 원인은 다음과 같습니다. 아직 로컬 깃을 설정하지 않은 레포에서 액세스하려고 하는 경우입니다.저는 공용 레포트를 비공개 레포트로 변경했을 때 이 오류가 발생했습니다.이제 공공 레포에는 인증이 필요하지 않지만 개인 레포에는 인증이 필요하다는 것이 분명합니다.

이것이 오류가 발생하는 이유와 그 원인에 대한 하나의 잠재적인 트리거를 명확히 하는 데 도움이 되기를 바랍니다.

또한 개인 GitLab 저장소에 계정을 연결하는 문제도 있었습니다.바로 이 Stack Overflow 페이지에서 해결책을 찾았지만 여전히 의문을 가지고 있습니다.수행해야 할 작업을 설명하는 이 이미지를 게시합니다.

Credential Helper to Resolve Git Account Issue

  1. 에서 Android Studio git pull

    예:test@test:~/StudioProjects/dummy-project-android$ git pull

  2. 사용자 이름 추가

    예:test@test:~/StudioProjects/dummy-project-android$ "username"

  3. 사용자 암호 추가

    Password for 'https://dummy-project-android@git.com':"password"

그 후에 나머지 작업을 수행할 수 있습니다.

보고서가 비공개인 경우

이 형식 대신

https://github.com/username/<project_name>.git

이 형식 사용

git@github.username/<project_name>.git

에서 을올 URL 수있니에서 올바른 수 .SSH

Github Repo로 이동 -> Code 클릭 -> SSH 선택 -> repo URL 복사

이게 도움이 되길 바랍니다.

제게 효과가 있었던 것은 Git 저장소의 액세스 권한을 개인에서 공용으로 변경한 것입니다.

언급URL : https://stackoverflow.com/questions/22147574/github-fatal-could-not-read-username-for-https-github-com-no-such-file-o

반응형