힘내 : 권한 거부 (공개 키) 치명적-원격 저장소에서 읽을 수 없습니다. Git 저장소를 복제하는 동안


153

Git 저장소를 복제 할 수 없으며이 오류가 발생합니다.

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

내가 읽은 의 Bitbucket, Windows 및 "치명적인를 : 비밀번호를 읽을 수 없습니다" , 여전히 문제가 있습니다.

더 진행했지만 지금이 오류가 발생합니다.

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://krishna.sonipayu.in@stage.payupaisa.
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

저장소가 존재합니다.


그것이 git 저장소인지 확실합니까?
gravetii

그렇습니다. git을 처음 사용하여 복제하는 동안이 오류가 발생합니다. git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com
KCS

주된 이유는 리포지토리가 사용자를 git-server 사용자로 인식 할 수 없기 때문입니다. ssh를 통해 서버에 액세스 할 수 있습니까?
Малъ Скрылевъ

누군가 Github을 사용하는 동안이 문제가 발생하면 여기에 언급 된 단계를 따르십시오. help.github.com/en/articles/… 그것은 나를 위해 일했습니다.
Rounak

답변:


69

Windows 7 문제가 아닌 권한 문제처럼 보입니다.

ssh 키가 인증되지 않았습니다 Permission denied (publickey).

공개 ssh 키를 생성하고 Git 리포지토리 관리자에게 ssh공개 키 추가를 요청해야합니다.

이를 수행하는 방법에 대한 정보 : ssh 키 저장 실패


27
이상하다. 저장소가 공용이며 공용 저장소를 복제하고 있습니다. 왜 관리자에게 Github에서 호스팅되는 공개 저장소를 복제 할 권한을 요청해야하는지 잘 모르겠습니다.
Shailen

5
예, 거짓입니다. 관리자에게 물어볼 필요가 없습니다. 로컬 자식에 문제가 있습니다.
Ivan Castellanos

3
왜 어려운가요? 나는 성공했지만 고통스럽지 않았습니다.
Niklas R.

9
공개 리포지토리의 키를 인증 할 필요는 없으며 HTTPS 프로토콜 만 사용하십시오. stackoverflow.com/a/33072867/1385678
Diego V

225

여기에 와서 리포지토리를 가져 오려고하지만 프로토콜 (ssh / https)에 신경 쓰지 않는 사람들 의 경우 ssh 대신 https사용 하고 싶을 수도 있습니다 (지원되는 경우).

예를 들어

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

대신에

git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

6
ssh 권한이 해결되지 않거나 해당 부분을 건너 뛰려는 경우 가장 적합한 대체 계획입니다.
Wahib Ul Haq

13
이 답변은 메커니즘을에서 (으) ssh로 변경 했습니다 https. ssh를 사용하여 저장소에 액세스하여 원래 문제점을 해결하지는 않습니다. 나는 이것이 어떻게 질문에 대한 좋은 대답으로 계속 호기심을 가질 수 있는지 궁금합니다. 아래의 다른 답변은 올바르게 해결하는 것입니다.
Armin

3
원래 문제는 저장소를 복제하려는 자식 초보자입니다. 목표가 공개 리포지토리를 끌어내는 것이 가장 효과적인 답변입니다.
Vivek Chavda

자살에서 구 해주셔서 감사합니다. 사용자 이름과 비밀번호가 있다면 개인 저장소에 사용할 수 있습니다.
BILL WAGNER

81

SSH를 생성하고 Bitbucket 계정이나 SSH를 추가 한 후에도 여전히 액세스 관련 문제가있는 경우 GitBash, OSX 또는 Linux의 터미널에서 다음을 수행해야합니다.

# Lists already added identities (‘ssh keys’)
ssh-add -l

그런 다음 키가 표시되지 않으면 다음과 같이 추가하십시오 ( identity실명으로 교체 ).

# Add a new identity
ssh-add ~/.ssh/identity

이것은 나를 위해 일했습니다.


3
ssh-add ~/.ssh/identity반환 오류/Users/lee/.ssh/identity: No such file or directory
lee

14
"~ / .ssh"에서 "ssh-add"를 실행하고 프롬프트가 표시되면 "~ / .ssh / id_rsa"파일의 암호를 입력하면 문제가 해결되었습니다.
James Furey

1
나는 내 레포를 뽑을 수 있었지만 이것을하지 않고 밀지 못했습니다!
Dimitar Nestorov

@ james Furey 답변은 소스 트리에서 ssh URL을 git repo로 식별하는 데 도움이되었습니다.
YSR 팬

2
몇 시간 동안 땀을 흘리고 다른 일을 시도한 후 나를 위해 일했습니다. 결국에는 정체성 대신에 자신의 시스템에서 이름을 사용하십시오. 터미널에서 cd ​​명령을 수행하여 .ssh 폴더로 이동 한 다음 터미널에 'ls'명령을 입력하십시오. 그런 다음 자신의 파일로 위 명령의 "identity"를 재생하십시오. sourcetree 터미널로 이동 cd ~cd .ssh다음 : ls(.pub 확장자없이 이름을 복사) 다음 (이 명령을 실행)ssh-add ~/.ssh/(copied name)
Tejas

21

나는 GitHub 와 같은 문제에 직면했다 . 해결 방법은 다음과 같습니다.

  1. 다음에 설명 된대로 컴퓨터에서 SSH 키를 생성하십시오. SSH 키 생성 .
  2. GitHub 계정에 로그인하십시오 : GitHub Login .
  3. 계정에서 새로 생성 된 SSH 키 : 내 계정 SSH 키를 추가하십시오 .
  4. git clone프로젝트를 다시 시도하십시오 .

매력처럼 일했다!!
Prakhar

1
나는 지난 5 년간 3 개의 새로운 운영 체제에서이 답변을 사용했으며 매번 완벽하게 작동했습니다.
kotoole

분명히 High Sierra는 사용자가 키를 .ssh / config 파일에 등록해야합니다. 엘 캐피 탄은 어떻게 든 그것없이 관리했다.
dsomnus

14

Mac 에서이 문제가 발생했습니다 .Git 저장소에 액세스하도록 SSH를 올바르게 설정하는 동안 다시 시작한 후 (및 Mac이 스탠드 오프 상태 인 경우) 모든 자격 증명이 제거되었습니다. 분명히 어떤 이유로 펍 키가 644로 설정되어 키 체인에서 제거되었습니다. 읽으려면 :

  • chmod 600 공개 키
  • ssh-add ~/.ssh/[your private key]-아이디가 추가되었음을 표시해야합니다. 원하는 키 파일은 .pub 확장자가없는 파일입니다.
  • ssh-add -l 새로 추가 된 신분을 보여 주어야합니다

편집 : 분명히 MacOS는 키를 제거하는 경향이 있습니다-High Sierra 업데이트를 다운로드 한 후 (아직 설치하지 않았습니다) 내 키가 제거되어 다음을 통해 다시 추가해야했습니다 ssh-add


2
이 솔루션은 macOS High Sierra를 버전 10.13.1로 업그레이드 한 후에도 여전히 정확합니다. 특히, Sourcetree는 커밋을 원격 저장소로 푸시하려고 할 때 문제를 일으킨 앱이었습니다. 위의 단계로 인해 문제가 해결되었습니다.
Paul Bonneville 17

10.13.4 에서이 문제가 있었고이 솔루션이 저에게 효과적이었습니다.
Andrew Ebling

11

나는 또한 같은 문제에 직면했다. 나는 다음을했고 그것이 나를 위해 일했다 :

  1. Windows의 GIT GUI 클라이언트에서 키를 생성하십시오. 이 키를 클립 보드에 복사하십시오.
  2. bitBucket/git 웹 사이트에서 계정을 열고이 키를 프로필에 추가하십시오. 이런 식으로, 서버는 귀하가 합법적 인 시스템에서 액세스하는 합법적 인 사용자임을 알고 있습니다.
  3. 그게 다야. 이후 모든 푸시 명령이 작동했습니다.

이를 통해 관리자로 Git Bash를 실행하지 않고 RSA 키를 "h"드라이브에 넣은 상태에서 RSA를 생성했음을 알 수있었습니다. : oops :
tylerlindell

7

저에게 저의 저장소에서 복제 하고 싶을 때 , "Permission denied (publickey) fatal : Could not read from remote repository"와 같은 메시지가 나타났습니다. 내 경우의 해결책은 복제 전에 sudo를 사용하지 않는 것입니다.


정말 감사합니다 @mustapha 당신은 정말 내 시간을 절약하십시오.
vinay kumar

7

Github (또는 Bitbucket)은 서버에서 ssh 키를 찾을 수 없습니다.

계정 설정에 키를 추가하기 만하면됩니다.


6

새로운 공개 ssh 키를 생성하여 bitbucket 또는 github 및

도움이되지 않았습니다 . PC를 다시 시작해보십시오 . 그것은 나를 도왔다!!


고마워요, 이것도 내가해야 할 일이었습니다.
Steph

터미널을 닫고 새 터미널을 열어서 작동하는지 확인해야했습니다.
rahul

5

을 실행하여 새 ssh 키를 작성해야합니다 ssh-keygen -t rsa.


@Joel Heroku 참조가 제거되었습니다. 감사합니다
biniam

4

오류가 발생했습니다 ...

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

... 노트북이 나쁜 Windows 10 업데이트로 사망하고 공장 설정으로 돌아간 후 Git Bash 프롬프트에서 Bitbucket으로 연락하려고 할 때. 백업에서 모든 ssh 파일을 복원했습니다.

컴퓨터를 재 구축 한 후 오류의 원인이 Windows 계정 이름과 일치하지 않는 것으로 나타났습니다. 공개 키 파일 id_rsa.pub은 Windows 계정 이름 @과 기호, 컴퓨터 이름으로 구성된 쉽게 읽을 수있는 문자열로 끝나는 것을 알았습니다 .

컴퓨터를 처음 설정할 때 중간 이니셜을 포함하여 Windows 계정 이름을 만들었지 만 컴퓨터를 공장 설정으로 다시 설정하면 새로운 DevOps 직원이 중간 이름없이 내 계정 이름을 만들었습니다.

이 문제를 해결하기 위해 공개 키 파일을 편집 id_rsa.pub하고 마지막에 내 이름에서 중간 이니셜을 제거했습니다. 나는 같은 컴퓨터 이름을 고수 했으므로 괜찮습니다. 파일 내용을 Windows 클립 보드에 복사했습니다. 그런 다음 Bitbucket에 로그인하고 아바타 아래의 Bitbucket Settings로 이동하여 새 내용에 붙여 넣을 새 공개 키를 추가했습니다.

Git Bash 프롬프트로 돌아가서 명령을 입력하여 작동하는지 확인했습니다.

ssh -T git@bitbucket.org

... 로그인 된 메시지를 다시 받았습니다.


4

macOS / Linux (우분투) :

1. 인증하려면 사용자 설정 내에서 SSH 키 쌍의 공개 부분을 비트 버킷에 추가해야합니다. 사용자 설정-> SSH 키

~ / .ssh 디렉토리에서 일반적으로 언급 된 공개 부분을 찾을 수 id_rsa.pub있습니다. .pubPublic 파일 이름 부분을 적어 둡니다. 아직 생성하지 않은 경우 생성하는 데 도움이됩니다.

아직 끝나지 않았습니다 ...

2. 시스템에 어떤 원격 호스트에 어떤 키를 사용해야하는지 알려 주어야하므로 ~ / .ssh / config 파일에이 줄을 추가하십시오.

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

어디 PRIVATE_KEY_FILE_NAME당신의 SSH 키 쌍의 개인 부분의 이름은 당신이 그것으로 엉망하지 않은 경우, 일반적으로 기본 이름입니다 : id_rsa 이 경우 대체 PRIVATE_KEY_FILE_NAME와 위 id_rsa(개인 키는없는 .pub확장)


"Ubuntu"의 철자가
틀렸다는 점에 유의

4

유용한 실과 나는 테이블에 많은 새로운 것을 가져 오지 않습니다. 내가 취한 단계는 Maxime가 유용하게 지적하는 설명의 일부이지만 일부는 간과 할 수 있습니다. 이 섹션은 SSH 키를 ssh-agent에 추가 입니다.

이미 ssh 키를 생성했지만 재부팅 후 내 리포지토리 중 하나를 복제 할 수 없었습니다.

복제하려면 ssh-agent를 시작하고이 에이전트에 개인 키를 추가해야했습니다.

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

3

git cloneWindows 명령 줄에서 명령 을 실행하는 동안 동일한 문제가 발생했습니다 . 그러나 명령은 Git Bash 에서 성공적으로 실행됩니다 .


3

나는 비슷한 문제가 있었다. ssh 키를 변경하고 다시 시작하여 다른 모든 'n'솔루션을 시도했습니다. 그러나 실제 문제는 gitlab 기본 프로토콜이 ssh에서 https로 변경되었다는 것입니다.

원격 URL을 확인하십시오.

git remote -v

원격 URL을 변경

git remote set-url origin https://URL

완벽합니다. ssh를 구성 할 필요가 없습니다.
Rohit Parte

나는 똑같이해야했다. 이 경우 ssh 키가 작동하지 않았습니다.
Dani

치명적 : ' bitbucket.org:xxxxxx/xxxxxxxxt ' 에 액세스 할 수 없음 : 포트 번호가 'r'로
끝남

2

나와 같은 경우 모두 실패하면 GIT를 제거하고 다시 설치하십시오. 어떤 이유로 이것은 수정됩니다.

추신

  1. SSH 공개 키에서 새 키를 생성하고 업데이트하려고했습니다.
  2. 또한 모든 키를 삭제하고 새로운 키를 만들려고했습니다.
  3. 그리고 아니요, .gitconfig에 아무런 문제가 없습니다.

2

hubCLI 도구 수정 :

  • git config --global hub.protocol https 장기적으로
  • git remote add OOPS https://github.com/isomorphisms/go.gitgit push OOPS즉각적인 수정을위한 &&

이 오류는 hub잘못된 기본 hub.protocolgit-config 값 으로 인해 명령 행 도구 에서 발생 합니다. 그들은 repos를

git://github.com/schacon/ticgit.git

github이 실제로 받아들이는 것 대신에 https://github.com/schacon/ticgit.git.


독서는 LESS=+/"HTTPS instead" man hub위의 "장기 수정"명령이 어디에서 오는지 설명합니다.


이것은 나의 하루를 구했다!
Jay Lee

1

복제하는 동안 비슷한 문제가있었습니다 [내 오류 : 권한이 거부되었습니다 (공개 키). 치명적 : 원격 저장소에서 읽을 수 없습니다. 올바른 액세스 권한이 있는지 확인하십시오.

-필자의 경우 bitBucket / UBUNTU14.04를 사용하고 있었지만 이미 생성 한 키 파일 세트가 이미 있었고 파일 이름을 변경했습니다. 난 그저 , 복사 표준 id_rsa_gsg_keypair를 & id_rsa.pub 이름 형식으로 파일을. 그런 다음 문제없이 명령을 다시 실행했습니다.

OBTW : HTTP 스타일 클론을 사용하여 비밀번호 프롬프트를 사용할 수도 있습니다.


0

나는 리눅스에서도 비슷한 문제가 있었다. github 서버에 로그인하고 배포 키를 만들어 문제를 해결했습니다. 저장소 설정 아래에 있습니다. 그런 다음 공개 키를 복사하여 붙여 넣습니다 (보통 ~ / .ssh / id_rsa.pub에 있지만 구성이 다를 수 있음). 이 키에 쓰기 액세스 권한을 부여하는 확인란이 있습니다. 그것을 클릭하십시오 (git을 사용하여 배포하지 않는 한, 클릭하지 마십시오).


0

나는 같은 오류가 있었다. 내 ssh-agent가 원격 ssh 키와 동기화되지 않아서 로그 아웃하고 다시 로그인하는 것이 해결책이었습니다.

다른 답변이 자신의 상황에 적용되지 않는 것으로 보인 경우를 대비하여 여기에 추가하십시오.


0

gitlab에 ssh를 설정하는 동안 동일한 문제에 직면했습니다. 나는 이미 ssh를 가지고 github있었고 그것을 덮어 쓸 수 없었다. 나를 위해 일한 단계는 다음과 같습니다.

  1. 새 경로로 SSH를 생성하고 ssh list에 추가하십시오 ssh-add /path/to/new/id_rsa.
  2. 라는 이름의 파일 작성 config~/.ssh/사용합니다. 나는 사용했다 vi ~/.ssh/config/.
  3. 새로 만든 파일에 추가

# GitLab.com server Host gitlab.com RSAAuthentication yes IdentityFile /path/to/new/id_rsa

  1. 저장하고 종료하십시오.

그 후 터미널을 다시 시작하고 밀어 넣으면 작동합니다.


0

풀 소스 프로젝트를 복제하여 풀 요청을 제출하려는 경우 :

풀 소스 프로젝트를 복제하여 풀 요청을 제출할 수있었습니다. 문제는 프로젝트 소유자의 권한이 없다는 것입니다. 어쨌든 PR을 제출하려는 의도가 있었으므로 여기에 가능한 대안이 있습니다.

내 해결책 :

  1. 포크 리포지토리

포크 레포

  1. 그런 다음 분기 저장소에서 복제하십시오. 갈래 레포에서 복제

  2. 기능에 대한 작업을 수행 한 후 풀 요청을 제출하십시오.



0

해결책 : cat ~ / .ssh / id_rsa.pub에서 복제하거나 푸시하려는 서버에서 GitHub, 설정, SSH 및 GPG 키 , 새 SSH 키 붙여 넣기 키로 이동하십시오.


0

이 오류 메시지에는 여러 가지 이유가 있습니다. 이미 ssh 등을 완전히 사용하는 다른 리포지토리와 로컬로 다른 리포지토리를 설정하고 동일한 서버, 그러나 다른 리포지토리에 연결하려고 할 때 동일한 오류가 발생했습니다. 답을 찾을 수 없었지만 알아 냈습니다. 그래서 게시합니다. 희망적으로 누군가를 돕는다.

git remote add origin git@git.ourserver.com:teamalpha/repositorytwo.git

0

이 답변 중 어느 것도 도움이되지 않으면

  1. 당신은 Windows를 사용하고 있습니다
  2. Putty로 키를 생성하거나 PC에 Putty를 설치했습니다
  3. CMD 또는 PowerShell로 키를 생성

시험

  1. 키를 삭제
  2. 창에서 Git Bash를 찾은 다음 Git Bash 명령 행으로 새 키를 생성하십시오.
  3. 온라인 Repo에 공개 키 추가

그런 다음 git clone 후 yes를 입력하여 확인하면 복제가 시작됩니다.


-2

어리석은 일이지만 우리에게 일어났습니다.

bitbucket과 Sourcetree를 사용 중이고 복제 URL을 새 리포지토리 대화 상자에 붙여 넣기 만하면 복사하거나 밀 때 동일한 오류가 표시됩니다.

URL 앞에 'git clone'항목을 삭제하십시오.

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