Git 오류 : "올바른 액세스 권한이 있고 저장소가 있는지 확인하십시오."


97

Windows에서 TortoiseGit을 사용하고 있습니다. 표준 Windows 탐색기의 컨텍스트 메뉴에서 복제를 시도 할 때 다음 오류가 발생합니다.

올바른 액세스 권한이 있고 저장소가 있는지 확인하십시오.

보다 정확하게는 터미널의 스냅 샷은 다음과 같습니다.

git.exe clone --progress -v "git @ arobotdev : \ git \ AlfaRobot.git" "C : \ Work \ AlfaRobot"

'C : \ Work \ AlfaRobot'에 복제 중 ...
권한이 거부되었습니다. 다시 시도하십시오.
권한이 거부되었습니다. 다시 시도하십시오.
권한이 거부되었습니다 (공개 키, 암호).
치명적 : 원격 저장소에서 읽을 수 없습니다.

올바른 액세스 권한이
있고 저장소가 있는지 확인하십시오 .

자식이 완전히 종료되지 않았습니다 (종료 코드 128) (21450 ms @ 19.09.2014 10:36:58).

git이 제대로 작동하도록하려면 어떻게해야합니까?


1
ssh를 Keygen은 생성 시도하고 추가
라자 시몬에게

Shell (또는 Windows의 Git Bash)을 사용하여 SSH 키 생성 :$ ssh-keygen -t rsa -C "youremail@example.com"
Belter

항상 암호를 입력 할 필요가 없기 때문에 저장소를 git@github.com 주소로 변경 한 후 오류가 발생했습니다. 진짜 실수는 github에 내 공개 키를 추가하는 것을 잊은 것입니다.
dasWesen 19

답변:


76

git URL이 변경되었을 수 있습니다. 다음 명령을 사용하여 로컬 디렉터리의 URL을 변경합니다.

git remote set-url origin git@yourGitUrlHere

17
참고로 github는 이제 URL 체계를 사용합니다.git remote set-url origin https://github.com/username/repository.git
RyPope

2
@RyPope는 git (ssh) 또는 https 중 하나의 프로토콜을 사용할 수 있습니다. github에는 이제 프로토콜 githttps.
Vishnu

@Vishnu 뭐야 XXXXXXX?
244boy

답변에 변환 @RyPope
ishandutta2007

아주 흔한 실수는 저에게있었습니다. clip command를 사용하여 복사 xclip -sel clip < ~/.ssh/id_rsa.pub했지만 github 키 입력 상자에 붙여 넣는 동안 백 스페이스를 사용하여 마지막 줄 바꿈을 제거하여 실제로 공개 키를 변경했습니다. 따라서 항상 마지막 줄 바꿈을 제거하지 않고 ssh 공개 키를 그대로 복사하여 붙여 넣으십시오.
Amreesh Tyagi

62

해당 문제는 ssh-agent에있을 수 있으며 ssh 키가 ssh-agent에 추가되지 않았습니다. 터미널을 사용하여 다음 단계를 적용해야합니다.

  1. $ 평가 "$ (ssh-agent -s)"

    에이전트 PID 5867

  2. $ ssh-add

    /home/you/.ssh/id_rsa에 대한 암호 입력 : [] ID 추가 : /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

그러면 작동합니다. 건배 J.


11
복제 할 때 여전히 오류가 :fatal: Could not read from remote repository.
IgorGanapolsky

나에게 도움이 되었기 때문에 기본 id_rsa와 다른 키를 만들었으므로 위의 명령 ssh-add -K ~ / .ssh / id_rsa_other_project에서 추가로 수행해야합니다.
Nitesh

예, 이것은 전혀 문제를 해결하지 않습니다. SSH를 사용자의 신원을 추가하면에만 인증서 암호를 입력 할 때마다 요구하는 것을 중지
DMcCallum83

건배. 나는 실행에 실패했다 brew update. ssh-add명령을 실행 하기 전에 실행 했을 때 작동했습니다. 나는 이것을 항상 반복하지 않기를 바랍니다.
nyxee

"호스트 키 확인에 실패했습니다. 치명적 : 원격 저장소에서 읽을 수 없습니다."라는 오류가 계속 발생합니다. 하지만 나를 위해 수정 된 알려진 호스트 추가 : stackoverflow.com/questions/15214977/…
rickvian

36

GIT에서 복제를 수행하는 동안 SSH 대신 HTTPS를 사용하고, 복제를 위해이 URL을 사용하고, Gitbase, Android Studio 또는 다른 도구를 사용하여 분기를 복제 할 수 있습니다. 여기에 이미지 설명 입력


35

나를 위해 그것은 기계에 SSH 키가 없기 때문입니다. 로컬에서 SSH 키를 확인하십시오.

$ cat ~/.ssh/id_rsa.pub

이것은 SSH 키입니다. 저장소의 SSH 키에 추가하십시오.
gitlab에서

프로필 설정-> SSH 키

키를 추가하십시오


7
말씀하신대로 키를 추가했지만 여전히 액세스 거부 메시지가 표시됩니다. 도와주세요
Jet

18

Github는 이제 URL 스키마를 사용합니다.

git remote set-url origin https://github.com/username/repository.git


9

ssh :를 통해 저장소를 복제하려고하는데 git@arobotdev...SSH 키가 서버에 제대로 설정되지 않았습니다. 여기에는 여러 가지 이유가 있습니다.

  1. 공개 키가 사용자 git의 authorized_keys 파일에 저장되지 않을 수 있습니다.
  2. 1이 참이 아닌 경우 개인 키는 HOMEDIR의 .ssh / 폴더에 저장되지 않습니다.
  3. 권한이 제대로 설정되지 않았습니다.

위의 3 개가 모두 사실이 아니라면 내 유일한 결론은 시도 할 수 있습니다. git@arobotdev:AlfaRobot.git AlfaRobot.git이 git 사용자의 HOMEDIR에 있고 git 사용자의 HOMEDIR에있는 git 폴더 안에 있다고 가정합니다.


5

rsa.pub (즉, 생성 된 공개 키)는 github >> settings >> ssh keys 페이지에 추가해야합니다. 저장소 설정 >> 배포 키에이 공개 키를 추가하지 않았는지 확인하십시오. 그렇다면 여기에서 항목을 제거하고 언급 된 첫 번째 위치에 추가하십시오.

pub-private 키 설정에 대해 자세히 설명 합니다.

따라서 작동합니다!


3
  1. 가장 먼저 확인해야 할 것은 인터넷 연결입니다. 그러나 인터넷 문제는 대부분 저장소에 액세스 할 수 없다고 말합니다.

  2. 로컬과 github 모두에서 ssh를 설정했는지 확인하십시오. 방법 보기

  3. ssh git remote를 사용하고 있는지 확인하십시오. https를 복제 한 경우이 git 명령을 사용하여 URL을 ssh URL로 설정하십시오.git remote set-url origin git@github.com:your-username/your-repo-name.git

  4. ssh를 올바르게 설정했지만 작동이 중지 된 경우 다음을 수행하십시오.

    • eval "$(ssh-agent -s)"
    • ssh-add

    여전히 문제가있는 경우 github에서 ssh를 삭제하지 않았는지 확인하십시오. ssh가 github에서 삭제 된 경우 다시 추가 할 수 있습니다. 사용 pbcopy < ~/.ssh/id_rsa.pubssh 접속 키를 복사 한 다음 github에 ssh를 설정으로 이동하여 추가합니다.

항상 ssh를 사용하는 것이 좋습니다. 내가 함께 일한 대부분의 팀의 경우 ssh를 사용하는 경우를 제외하고는 저장소 (대부분 개인)에 액세스 할 수 없습니다. 초보자에게는 더 어려워 보일 수 있지만 나중에는 훨씬 더 쉽고 안전하다는 것을 알게 될 것입니다.


3

이 문제가 있었고 시스템에 잘못된 DNS 주소가 있음을 발견했습니다. 네트워크 확인 및 테스트

ssh -vvv git@bitbucket.org

그리고 출력 메시지를 읽으십시오. "git 또는 hg를 사용하여 Bitbucket에 연결할 수 있습니다."가 표시되는 경우 , 모든 것이 괜찮습니다.


안녕하세요 @Albert, 나는 gitlab.com에서 같은 문제에 직면하고 있습니다. 문제를 어떻게 해결하셨습니까?
abiratsis

@AlexandrosBiratsis 내 DNS를 다른 주소로 바꿉니다. opendns 또는 google dns를 사용해보십시오.
albert

2

다른 문제는 인터넷 연결 일 수 있습니다. 아마도 분명하지만 내 Wi-Fi가 다운되었는지 확인하는 데 몇 분이 걸렸습니다. :)


1
오류 메시지에 따르면 여기에서 인터넷 연결이 문제가되지 않는 것 같습니다.
jbmusso 2015

2

이 문제를 해결하는 방법은 다음과 같습니다. Win7 / 10에서 Babun (mintty.exe)을 사용하고있었습니다. 위에서 언급 한 많은 솔루션을 시도했지만 그중 어느 것도 작동하지 않습니다. 방금 잘못된 ssh 에이전트를 사용했을 수 있다는 것을 깨달았습니다 ... 그래서 echo $GIT_SSH찾아 가서 Plink.exe. 내가 실제로 기대 한 것은 OpenSSH입니다.

그래서 다음 한 줄을 ~/.zshrc파일에 추가 합니다.

참고 1 : babun에서 직접 실행할 수도 있습니다.
참고 2 : bash를 사용하는 경우 구성 파일은 다음과 같습니다..bashrc

export GIT_SSH=$(which ssh)

그리고 작동합니다!



2

ssh 대신 https를 사용해보십시오. 복제 URL을 복사하는 프로젝트 홈 페이지에서 https 옵션을 선택합니다.


2

이전에 작동하던 중 갑자기 작동이 중단 된 경우 :

이 문제는 때때로 ssh-agent재부팅시 지속되지 않기 때문에 발생할 수 있습니다 . ssh-agent키가 추가 되었는지 확인해야합니다 .

ssh-add -l -E md5

다음과 같은 출력을 얻는 경우 :

The agent has no identities.

그것은 ssh-agent당신의 열쇠를 잃어버린 것을 의미 합니다. 이 경우 ID 키를 다시 추가하기 만하면됩니다. 다음과 같은 것 :

ssh-add ~/.ssh/git_rsa

이제 오류가 사라질 것입니다!


내가 다른 계정에 대한 또 다른 SSH를 만들 때이 그래서 난 그냥 누락을 추가, 내게 일어난 git_rsa목록에

1

VPN을 통해 git 저장소에 연결하는 경우에도 발생할 수 있습니다. 조직의 리소스에 액세스하는 데 사용되는 VPN에 연결되어 있는지 확인하십시오.


1

프로젝트를 gitlab에 업로드하는 동안이 오류가 발생했습니다. 나는 자식에서 복제하지 않고 대신 프로젝트를 업로드합니다. 코드를 gitlab에 푸시하려면 ssh 또는 https를 사용하는 두 가지 방법이 있습니다. https를 사용하는 경우 gitlab 계정의 사용자 이름과 비밀번호를 입력해야합니다. 코드를 git에 푸시하려면 다음을 사용할 수 있습니다.

처음으로 Git에 푸시

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

-C 매개 변수는 선택 사항이며 키 끝에 주석을 제공하여 여러 개있는 경우 다른 매개 변수와 구별 할 수 있습니다. 그러면 id_rsa (개인 키)와 id_rsa.pub (공개 키)가 생성됩니다. 우리는 공개 키를 전달하고 개인 키를 유지합니다. Gitlab의 사용자 설정에서 공개 키를 계정에 추가 하여 최종적으로 푸시 할 수 있습니다.

프로젝트 위치 (디렉토리)에서 아래 명령을 사용하십시오.

git init

현재 디렉토리를 Git 저장소로 변환합니다. 이렇게하면 현재 디렉토리에 .git 하위 디렉토리가 추가되고 프로젝트의 개정판 기록을 시작할 수 있습니다.

https 경로를 사용하여 푸시

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

SSH 경로를 사용하여 푸시

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

— set-upstream : git에게 출발지 경로를 알려줍니다. Git이 이전에 현재 브랜치를 푸시했다면, 출처가 어디에 있는지 기억할 것입니다.

master : 초기화 할 때 push하고 싶은 브랜치의 이름입니다.


0

다른 답변과 마찬가지로 https대신 사용 ssh이 해결책이었습니다.

가능한 솔루션의 구체적인 예를 제공하기 위해 답변을 게시합니다. 이 명령 줄을 사용하여 원격 URL을 HTTPS로 변경할 때 bitbucket으로이 문제를 해결했습니다.

git remote set-url origin <bitbucket_URL>

그 후 다음 명령을 사용하여 콘텐츠를 저장소로 푸시 할 수 있습니다.

git push -u origin --all

그런 다음 Sourcetree를 사용할 수도 있습니다.


0

이상하게도 많은 리포지토리 중 하나에서만이 오류를 받았습니다.

내 문제는 이전의 오래된 GitHub의이 승리의 열쇠를 보관 위치를 Windows 용 새 GitHub의 데스크톱을 설치 한 후였다 ~/.ssh/github_rsa그리고 ~/.ssh/github_rsa.pub어디 승리에 대한 새로운 GitHub의이 그것을 기대로 ~/.ssh/id_rsa솔루션은 단지 기존의 개인 키와 공개 키의 이름을 변경 그래서 :

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

그런 다음 문제없이 repo에 다시 액세스 할 수 있습니다.


0

ssh URL 대신 https 출처를 사용하십시오.

예:

git remote add origin  https://gitlab.com/user/folder.git

0

Ubuntu를 사용하고 있습니다

많은 답변을 읽은 후 이미 내 git 계정에 SSH 키를 추가하고 사용하여 테스트를 시도해도 문제를 해결할 ssh -T git@gitlab.com수는 Welcome <my username>없지만 여전히 액세스 권한이 없다고 말합니다. 그런 다음 그 이유는 다음과 같습니다.

일반적으로 root사용자 가 아닌 경우 sudo모든 git 명령에 대해 실행해야합니다 .

실행할 때 sudo git clone <SSH....>(예 :). root권한 하에 실행 되지만 실수로 SSH 키를 만들 때 일반 사용자로 실행하고 키를 저장 ~/.ssh/id_rsa하면 절대 경로가 해결 /home/username/.ssh/id_rsa됩니다. 그리고 할 때 sudo git clone ...SSH 키를 찾습니다./root/.ssh/id_rsa

내가 이것에 대해 확신 할 수있는 이유. git이 SSH 키를 찾는 위치를 확인합니다. 다음 명령을 실행하십시오 sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>.. SSH 키를 찾는 위치를 보여줍니다.

그래서 제가 제안하는 해결책은 다음과 같습니다.

SSH 키를 다시 생성하고 (이 지침을 따르십시오 ), 그러나 sudo su첫 번째 단계에서 실행 하면 괜찮을 것입니다.


0

ssh 키를 추가하면 저에게 효과적이었습니다. Mac에서 ssh-keygen 명령을 사용하여 ssh 키를 만들 수 있습니다. YourRepository> Settings에서 Deploy keys 메뉴를 볼 수 있어야합니다. Allow write access 옵션을 확인하는 것을 잊지 마십시오.

키 배포 메뉴 스크린 샷


0

아주 흔한 실수는 저에게있었습니다. clip command를 사용하여 복사 xclip -sel clip < ~/.ssh/id_rsa.pub했지만 github 키 입력 상자에 붙여 넣는 동안 백 스페이스를 사용하여 마지막 줄 바꿈을 제거하여 실제로 공개 키를 변경했습니다.

따라서 항상 마지막 줄 바꿈을 제거하지 않고 ssh 공개 키를 그대로 복사하여 붙여 넣으십시오.


0

나를 위해 잘 작동하는 연결을 끊은 후 회사 VPN에 문제가있었습니다.

명령을 사용하여 github와의 연결 확인 ssh -vvvT git@github.com


0

https 사용으로 전환하면 작동합니다. 먼저 ssh 키가 아닌 https로 전환하십시오. 자식 원격 설정 URL 출처

그런 다음 git 사용자 이름과 비밀번호를 요청합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.