GitHub 오류 메시지-권한 거부 (공개 키)


701

아무도이 오류를보고 어떻게 해야할지 알고 있습니까?

터미널을 사용하고 있으며 루트에 있으며 GitHub 리포지토리가 있으며 지금 무엇을 해야할지 모르겠습니다.

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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



1
.ssh 및 인증 된 키의 권한 문제 일 수 있습니다. Ssh는 Google에서 매우 엄격합니다.
Karl Morrison


@bdukes '답은 여기에 사용하는 명령은 다음과 같은 HTTPS하며, Windows 예제 작동합니다 : "PS C를 : \ XAMPP \ htdocs에> 자식 클론 github.com/algolia/instant-search-demo.git "

답변:


662

GitHub는 귀하를 인증 할 수 없습니다. 따라서 컴퓨터에서 SSH 키를 설정 하지 않았 거나 키가 GitHub 계정과 연결되어 있지 않기 때문에 SSH 키로 설정되어 있지 않습니다.

SSH / git URL 대신 HTTPS URL을 사용하여 SSH 키를 처리하지 않아도됩니다. 이것이 GitHub의 권장 방법 입니다.

또한 GitHub에는 해당 오류 메시지에 대한 도움말 페이지 가 있으며 확인할 수있는 모든 정보를 자세히 설명합니다.


53
이 오류는 GitHub에만 국한되지 않습니다. BitBucket과 동일한 오류가 발생하여이를 해결하는 방법에 대해 머리를 긁고 있습니다.
IgorGanapolsky

32
도움의 부분은 사용 ssh -vT git@github.com으로부터 Github에서 도움말 페이지 당신의 repo가 사용하는 어떤 키 도움말 디버깅. 나는 당신이 당신의 대답에 그것을 추가하는 것이 좋습니다.
막심 버나드

25
SSL 대신 HTTPS를 사용한다는 의견은 다소 실망 스럽습니다. SSH가 훨씬 더 편리합니다. 위의 @MaximeBernard의 제안은 나를 위해 문제를 해결했습니다 .GIT는 .ssh 디렉토리의 올바른 위치를 찾지 못했습니다. 사용 ssh -vT git@github.com은 왜 작동하지 않는지에 대한 많은 정보를 제공합니다.
Christophe

1
위의 의견에 따르면 세 번째 옵션은 ssh 키가 아닌 다른 계정에서 명령을 보내는 것입니다 (예 : 루트로 실행).
David LeBauer

1
@ theapache64가 언급했듯이 : Mac을 사용 중이고 이미 ssh 키를 생성 한 경우 "ssh-add"가 실제로 누락되었을 수 있습니다. 나를 위해 일했다.
Digital Impermanence

78

~ / .ssh 디렉토리에 구성 파일 을 작성 했습니까 ? 다음과 같은 내용이 있어야합니다.

Host github.com 
 IdentityFile ~/.ssh/github_rsa

github_rsa 라는 ssh 키를 작성했다고 가정 하십시오.

그것을 GitHub에 업로드했습니다 ...

참고 : ~ / .ssh / 디렉토리에 둘 이상의 키 (2 이상)가있는 경우이 명시 적 구성 방식을 따라야합니다. 이 방법으로 키를 지정하지 않으면 첫 번째 키 순서대로 github 인증에 사용되므로 키 파일 이름에 따라 다릅니다.


1
나는 ssh 키를 생성했으며 문제없이 꽤 오랫동안 잘 작동했습니다. 좋은 하루 (아마 다시 시작한 후)는 작동을 멈추었지만 키는 github과 로컬 시스템에서 그대로 유지되었습니다. 키-맵-도메인을 지정하여 "config file"을 추가했습니다. 위의 내용은 igor-ganapolsky-answer에서 제공합니다. 잘 작동합니다!
parasrish 2016 년

3
이것은 실제로 내 문제를 해결합니다! 많은 감사합니다! 하지만 질문이 있습니다. 방법을 사용하기 전에 ssh -T git@github.com올바르게 응답하는 반면 git push -u origin master질문과 동일한 오류가 발생합니다. 왜 올바르게 연결할 수는 있지만 푸시하거나 가져올 수없는 이유는 무엇입니까?
Eden Harder

@ EdenHarder 나는 같은 문제에 직면하고있다. 그것에 대한 답을 찾았습니까?
Vreddhi Bhat

64

나는이 문제를 안다. ssh 키를 추가 한 후 ssh 키를 ssh 에이전트에 추가하십시오 (oficial docs https://help.github.com/articles/generating-ssh-keys/ ).

ssh-agent -s
ssh-add ~/.ssh/id_rsa

그 후, 모든 것이 잘 작동하며, 자식은 올바른 키를 볼 수 있습니다.


5
지사! MacOS X에서 작업했습니다.
stillatmylinux

9
인증 에이전트에 대한 연결을 열 수 없습니다.
Mona Jalal

이것을 시도하십시오 : evalssh-agent -s
Vincent acent

@ MonaJalal 사용ssh-add ~/.ssh/github_rsa
Anirban Nag 'tintinmj'10

완전한. 작동 중입니다. 감사합니다. 👌
Erkam KUCET

62

SSH 키 (없는 경우)를 생성하고 공개 키를 Github 계정과 연결해야합니다. Github 자체 문서를 참조하십시오 .


2
고마워요 ... GitHub에서 SSH 키를 생성했습니다. 터미널에서 두 명령을 연결하는 데 어떤 명령이 사용됩니까? 감사!
webwrks

2
이에 대한 터미널 명령이 없습니다. 답변에서 연결 한 설명서의 4 단계를 참조하십시오.
cdhowie

HTTPS를 사용하여 저장소를 복제했습니다. 이 경우 SSH 키를 생성해야합니까?
Pabitra Dash

@PabitraDash 아니요. HTTPS는 SSH 키를 사용하지 않습니다.
cdhowie

51

이것은 나에게 일어났다. 어떤 이유로 내 기원은 그것을 깨닫지 않고 엉망이되었습니다.

설정이 여전히 올바른지 확인하십시오

git remote -v

URL은 ssh : //git@github.com/YourDirectory/YourProject.git과 같아야합니다. git@github.com이 보이지 않으면

git remote set-url origin git://github.com/YourDirectory/YourProject.git

올바르게 설정하십시오. 또는 github 앱을 사용하여 특정 리포지토리의 설정 패널에서 기본 원격 리포지토리 URL을 확인하고 설정할 수 있습니다.


9
URL에주의하십시오. https와 ssh가 다르며이 페이지의 게시물이 명확하지 않습니다. 각 git 프로젝트는 프로젝트 루트 디렉토리에 .git / config 파일을 가지고 있습니다. 여기에서 원격 및 지점 정보를 설정할 수 있습니다. https : url = github.com/<yourGitUserName>/<yourGitProject>.git에 대한 원격 설정 : git + ssh 동안 : url = git@github.com : <yourGitUserName> / <yourGitProject> .git 잘못된 URL이 있으면 공개 키 권한이 오류를 거부했습니다. 이는 명백하지 않은 오류 일 것입니다.
darKoram


19

SSH를 통해 GitHub를 연결한다고 가정하면 아래 명령을 실행하여이를 확인할 수 있습니다.

$git config --get remote.origin.url

결과가 git@github.com : xxx / xxx.github.com.git 형식 인 경우 다음을 수행해야합니다.

SSH 키를 생성하거나 기존 키를 사용하십시오. 계정이 있다면 ssh-agent (2 단계)와 GitHub 계정 (3 단계)에 키를 추가하면됩니다.

다음은 SSH 키가없는 사용자를위한 것입니다.

1 단계 공개 / 개인 rsa 키 페어 생성

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

SSH 키를 저장할 위치와 사용할 암호를 확인하라는 메시지가 표시됩니다.

2 단계 ssh-agent에 키 추가

  • ssh-agent가 사용 가능한지 확인하십시오.

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

  • SSH 키를 ssh-agent에 추가하십시오.

    $ssh-add ~/.ssh/id_rsa

3 단계 SSH 키를 계정에 추가

$sudo apt-get install xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

그런 다음 복사 된 키를 GitHub에 추가하십시오.

이동 설정 -> SSH 키 (개인 설정 사이드 바) -> SSH 키를 추가 -> 양식을 작성 (키가 클립 보드에, 그냥 사용 CTRL + V) -> 추가 키

위 단계를 수행 한 후 권한 문제를 해결해야합니다.

참조 링크 : SSH 키 생성 .


이 솔루션은 우분투에서 $ ssh-add /root/.ssh/id_rsa
Feras

이것은 내 환경에 대한 이상한 혼란도 해결했습니다. 내가 제안 한 수정은 xclip 의존성을 피하고 사용하는 것입니다.cat ~/.ssh/id_rsa.pub
Pogrindis

19

먼저 컴퓨터의 기존 ssh 키를 확인해야합니다. 터미널을 열고 다음을 실행하십시오.

ls -al ~/.ssh

#or

cd ~/.ssh
ls

그러면 .ssh 디렉토리의 파일이 나열됩니다.

그리고 마지막으로 당신이 보는 것에 따라 (내 경우에는) :

 github_rsa  github_rsa.pub known_hosts

RSA를 설정하면 "git push origin"문제를 해결할 수 있습니다.

$ ssh-keygen -lf ~/.ssh/github_rsa.pub

참고 : RSA 인증서는 키 쌍이므로 개인 및 공용 인증서를 갖게되며이 인증서는 github (이 경우)에 속하기 때문에 개인용으로 액세스 할 수 없지만이 오류가 발생하면 공개가 누락 될 수 있습니다 (적어도 그것은 내 경우였습니다. 내 github 계정 또는 저장소는 어떻게 든 엉망이되어 이전에 생성 된 공개 키를 "링크"해야했습니다.


SHA이 명령에서 출력을 github 에 복사해야 합니까?
IgorGanapolsky

아니요, "ssh-keygen -lf ~ / .ssh / <YOUR_GITHUB_RSA_FILE.pub>"를 실행하십시오
d1jhoni1b

그렇기 때문에 ".ssh 디렉토리에 파일을 나열합니다"라는 명령을 추가하여 키를 추출 할 파일 (ssh-keygen)을 알 수 있습니다. RSA 인증서는 키 쌍으로되어 있으므로 개인 인증서와 공개 인증서를 갖게되며 개인 인증서는 github (이 경우)에 속하기 때문에 액세스 할 수 없지만 공개는이 오류가 발생할 때 누락 될 수 있습니다 ( 적어도 저의 경우였습니다. 내 github 계정 또는 repo가 ​​어떻게 든 엉망이되어 이전에 생성 된 공개 키를 "링크"해야했습니다.)
d1jhoni1b

$ ssh-keygen -lf ~ / .ssh / github_rsa.pub /home/mona/.ssh/github_rsa.pub : 해당 파일 또는 디렉토리가 없음
Mona Jalal

"이러한 파일이나 디렉토리가 없음"은 파일 이름이나 경로가 없다는 것을 의미합니다. ls -al ~ / .ssh를 실행할 때 무엇을 얻습니까?
d1jhoni1b

14

이 오류가 발생했습니다. OSX를 Sierra로 업그레이드했으며 이전 키가 더 이상 등록되지 않은 것으로 나타났습니다.

처음에 나는 그것이 "MacOS Sierra로 업그레이드하면 SSH 키가 깨져서 자신의 서버에서 빠져 나올 것"

그러나 나는 그 것을 회피했다. 기존 키를 다시 등록해야한다는 것이 밝혀졌습니다.

ssh-add -K

그리고 암호를 입력하십시오 ... 완료!


2
나를 위해 일한 같은 문제 :`ssh를-추가 -K ~ / 스푸핑 / id_rsa_gsg_keypair를`
mvladk

11

다른 해결책 :

SSH 키를 작성하고 다음을 입력하십시오. ssh-keygen -t rsa -C "your_email@example.com" . id_rsa 및 id_rsa.pub 파일이 모두 생성됩니다.

로컬 컴퓨터의 ssh 목록에 id_rsa를 추가하십시오. ssh-add ~/.ssh/id_rsa.

키를 생성 한 후 다음을 사용하여 pubkey를 얻습니다.

cat ~/.ssh/id_rsa.pub 

당신은 다음과 같은 것을 얻을 것입니다 :

cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== user@email.com

이 키 (값)를 복사하고 github.com으로 이동하여 설정 (ssh 및 pgp 키)에서 공개 키를 추가하십시오.


10

자체 저장소에 액세스하지 않거나 복제 된 저장소 내에서 복제하는 경우 ( "git submodule ..."명령 사용) :

저장소의 홈 디렉토리에서 :

$ ls -a

1. ".gitmodules"를 열면 다음과 같은 것을 볼 수 있습니다 :

[submodule "XXX"]
    path = XXX
    url = git@github.com:YYY/XXX.git

가져와야하는 저장소 의 HTTPS 가되도록 마지막 행을 변경하십시오 .

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

저장 ".gitmodules" , 및 실행 서브 모듈에 대한 명령을하고, ".git"이 업데이트됩니다.

2. ".git"을 열고 " config"파일로 이동하면 다음과 같은 것을 찾을 수 있습니다.

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = git@github.com:YYY/XXX.git

가져와야하는 저장소 의 HTTPS 가되도록 마지막 행을 변경하십시오 .

    url = https://github.com/YYY/XXX.git

따라서이 경우 주된 문제는 단순히 URL입니다. 모든 저장소의 HTTPS는 이제 저장소 페이지 상단에서 찾을 수 있습니다.


9

이것은 나를 위해 일했다 :

1- 모든 원점 제거

git remote rm origin  

(cf. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )

* remote : "분기를 추적하는 저장소 세트 ("원격 ")를 관리합니다.

* rm : "이름이 지정된 원격 제거. 원격에 대한 모든 원격 추적 분기 및 구성 설정이 제거됩니다."

2- 모두 제거되었는지 확인하십시오.

git remote -v  

3- 새로운 원산지 마스터 추가

git remote add origin git@github.com:YOUR-GIT/YOUR-REPO.git

그게 다야!


1
자식 푸시 -u 기원 마스터 : 그 helpful.By에게 이러한 명령 I 쉽게 터미널에서 유형 GitHub의 링크를 밀어 수 후에는, GitHub의 사용자 이름과 계정 암호 나 한테 물어 시작했다
노하 살라

8

ssh-add -lGithub 계정의 SSH 키 목록에있는 SSH 키의 지문이 있는지 확인하십시오 .

출력이 비어 있지만 github 계정과 작동하는 개인 SSH 키가 ssh-add있는 경우이 키를 실행 하십시오 ( 기본적으로 ~/.ssh이름이 지정 id_rsa되어 있으므로 실행 될 것입니다)ssh-add id_rsa ).

그렇지 않으면 이 지시 사항 에 따라 SSH 키 쌍을 생성하십시오.


8

내 PHP 프로젝트 중 하나에 github를 일찍 사용하고있었습니다. github을 사용하는 동안 https 대신 ssh를 사용하고있었습니다. 나는 내 컴퓨터를 그렇게 설정했고 코드를 커밋하고 푸시 할 때마다 rsa 키 암호를 묻습니다.

며칠 후에 PHP 프로젝트 작업을 중단하고 rsa 비밀번호를 잊었습니다. 최근에 자바 프로젝트를 시작하고 비트 버킷으로 옮겼습니다. 암호를 잊어 버렸으므로 복구 할 수있는 방법없기 때문에 새 프로젝트에 https (권장) 프로토콜을 사용하기로 결정하고 질문에서 동일한 오류가 발생했습니다.

어떻게 해결 했습니까?

  1. 이 명령을 실행하여 내 자식에게 ssh 대신 https를 사용하도록 지시하십시오.

    git config --global url."https://".insteadOf git://
    
  2. 리모컨이 있으면 제거하십시오

    git remote rm origin
    
  3. git init 에서 git push 까지 모든 것을 다시 실행 하면 작동합니다!

추신 : 디버그 프로세스 중에 내 컴퓨터에서 ssh를 제거했는데 제거하면 문제가 해결 될 것이라고 생각했습니다. 네 알아요 !! :)


ssh가 작동해야 할 때 사람들을 https로 향하게하는 것은 좋은 생각이 아닙니다. 또한 이것은 회사 대행 인 뒤에있는 사람들에게는 효과가 없을 것입니다.
Igor Stoppa

8

원격 저장소에 대한 https 액세스로 ssh 액세스를 변경하면 문제가 해결되었습니다.

git remote set-url origin https_link_to_repository

git push -u origin master

5

나는 당신에게 가장 좋은 대답을한다고 생각합니다 .git 앱은 루트 사용자 디렉토리에서 id_rsa.pub를 읽습니다.

/home/root/.ssh/id_rsa.pub

그래서 git이 /home/your_username/.ssh/id_rsa.pub의 키를 읽을 수없는 이유입니다. 따라서 /home/root/.ssh/에 키를 만들어야합니다.

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

그런 다음 github 계정에서 키를 복사하십시오. 그것은 나를 위해 일했다. 시도해 볼 수 있습니다.


이것은 내가 찾고있는 대답을 알려줍니다. 습관에서 sudo로 복제본을 실행했기 때문에 잘못된 자격 증명을 찾고있었습니다. sudo를 꺼내고 내 클론이 잘 돌아갔습니다.
Taekahn

4

SSH 키를 이미 생성했지만 여전히 오류가 발생하는 경우 복제하려는 폴더를 읽고 쓸 수있는 권한을 사용자에게 부여해야하기 때문입니다. 이것을하기 위해,sudo chmod 777 <your_folder_name_here>" . 물론 이것은 SSH 키를 생성 한 후에도 여전히이 오류가 발생합니다. 이것이 향후 사용자에게 도움이되기를 바랍니다.

편집하다

git bash를 사용하는 경우 Windows에서 관리자를 사용하십시오.


이. 또한 문제가 발생할 수 있습니다.
KevinO

1
이것은 내 문제 였지만 폴더에 777 권한을 설정하지 않는 것이 좋습니다. 필자의 경우 폴더는 루트 사용자가 소유했으며 루트가 아닌 사용자 계정에 액세스 권한을 부여해야했습니다. 나는 이렇게 이렇게했다 :sudo chown -R $USER:$USER <your_folder_name_here>
David

@David, 나는 또한 그것을 추천합니다. 777은 꽤 해 키고 안전하지 않습니다.
케빈

3

최근에 같은 문제가 발생했습니다. 이는 즉시 수정이 필요한 경우에 도움이 될 수 있지만 시스템을 다시 시작할 때마다 수행해야합니다.

터미널에서 다음을 실행하십시오. ssh-add ~/.ssh/id_rsa

시스템 암호를 입력하면 작동합니다.


3

내 결과 중 일부를 추가하고 싶습니다.

를 사용중인 경우 GitBashSSH 키가에 저장되어 있는지 확인하십시오 ~/.ssh/id_rsa.

기본으로 GitBash에 대한 검색 ~/.ssh/id_rsaSSH 키에 대한 기본 경로로.

파일 이름조차도 id_rsa중요합니다. SSH 파일을 다른 파일 이름이나 경로에 저장하면 Permission Denied(publickey)오류가 발생합니다.


3

이 솔루션에는 몇 가지 해결책이 있습니다. 이들 중 일부는 이미 언급되었지만 함께 유지하는 것입니다.

  • 키가 기본적으로 다른 ~ / .ssh / 폴더 (예 : id.rsa 및 id.rsa.pub)인지 확인하십시오.

  • 키에 올바른 권한이 있는지 확인하십시오. chmod를 실행할 수 있습니다.

    chmod 600 ~ / .ssh / id_rsa

    chmod 644 ~ / .ssh / id_rsa.pub

  • 공개 키의 내용 (id_rsa.pub)이 원격 저장소 구성에 업로드 된 내용과 일치하는지 확인하십시오.

  • 마지막으로 ssh 에이전트의 문제점을 수정하십시오. ssh-add

더 많은 정보 : https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html


FAT32로 포맷 된 USB 드라이브를 사용하여 한 컴퓨터에서 다른 컴퓨터로 ssh 키를 복사했습니다. 파일의 권한이 변경되었습니다. 우분투에서는 필요할 때 자동으로 SSH 암호를 묻는 데 익숙했지만 chmod설명대로 실행하기 전까지는 자동으로 발생하지 않았습니다 . 감사.
lydell

1

Mac 용 GitHub UI를 사용하는 경우 환경 설정을 확인하여 로그인했는지 확인하십시오.


1

'git push'중에 같은 오류가 발생했습니다. 클라이언트 쪽에서 나는 두 가지 기원과 주인을 가졌습니다. 나는 하나를 제거한 다음 잘 작동했습니다.


1

Https url을 사용하여 로그인 할 수 있습니다

git push라고 말할 때 ssh url로 로그인하려고 시도하는 것 같습니다. 암호 만 묻는다면 ssh.better를 통해 연결하는 것을 고려하십시오 .http url을 사용하십시오.


1

또한 우분투에서는 BitBucket의 설정에 이미 SSH 키가 입력되었지만이 문제가 발생했습니다. 그 이유는 다음을 시도하고 있었기 때문입니다.

sudo git push origin master

이유를 모르지만 사용하여 해결했습니다.

git push origin master

사용 된 sudo가 없습니다.


1

나를 위해 나는 이것을 시도했다-

eval "$(ssh-agent -s)"

그런 다음 실행

ssh-add ~/.ssh/path-to-the-keyfile

실행할 수있는 키를 생성하기 위해

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

키 쌍 (공개 및 개인)이 생성됩니다.

이 키를 github에 저장하여 더 읽을 수 있습니다 있습니다. GitHub 계정에 새 SSH 키 추가

나는 그것이 다른 사람들을 도울 수 있기를 바랍니다 :)


1

@Batman과 비슷한 문제가있었습니다. 그러나 / usr / local / src / projectname에서 이것을 실행했기 때문에 sudo없이 실행하는 것은 옵션이 아닙니다.

환경 (~ / .ssh / 경로)을 미리 보려면 -E 플래그 를 추가하십시오 .

$ sudo -E git clone git@your_repo

남자 sudo에서 :

-E, --preserve-env 사용자가 기존 환경 변수를 유지하려는 보안 정책을 나타냅니다. 사용자에게 환경을 보존 할 권한이 없으면 보안 정책에서 오류를 반환 할 수 있습니다.


1

이런 일이 발생하는 시나리오는 리포지토리를 만든 후 GitHub 지침을 따르는 경우입니다. Git은 이와 같은 방법으로 리모컨을 추가하도록 지시합니다.

git remote add origin git@github.com:<user>/<project>.git

<>의 ​​내용을 계정과 관련된 값으로 바꾸십시오.

해결책은 .git접미사 를 제거하는 것 입니다. 다음과 같이 리모컨을 추가하십시오.

git remote add origin git@github.com:<user>/<project>


1

tl; dr

~/.ssh/config넣어

PubkeyAcceptedKeyTypes=+ssh-dss

시나리오 터치 바 MacBook Pro와 같은 openSSH> 7 버전을 사용하는 경우ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0

Github에 원래 키를 넣은 구형 Mac도 id_dsa 키를 사용하고있을 가능성이 있습니다. OpenSSH v7은 기본적으로 이러한 DSA 키 (이 포함 ssh-dss)를 사용하지 않지만 다음 코드를 입력하여 다시 추가 할 수 있습니다~/.ssh/config

PubkeyAcceptedKeyTypes=+ssh-dss

저에게 도움이 된 소스는이 Gentoo 뉴스 레터입니다.

이제 최소한 GitHub를 사용한 다음 키를 RSA에 고정 할 수 있습니다.


1

git pull원격 호스트를 사용하여 비슷한 오류 메시지에 대한 솔루션을 검색하는 동안이 페이지를 찾았습니다 .

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

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

를 통해 로컬 컴퓨터에서 원격 호스트로 연결되었습니다 ssh -AY remote_hostname. 이것은 OP의 질문에 대한 해결책은 아니지만이 페이지를 방문하는 다른 사람들에게 유용하므로 여기에 게시하십시오.

필자의 경우 git pull로컬 컴퓨터에서 잘 작동합니다 (즉, ssh 키가 설정되어 GitHub 계정에 추가 등). ~/.ssh/config랩톱에 이것을 추가하여 문제를 해결했습니다 .

Host *
     ForwardAgent yes

나는 그와 원격 호스트에 연결을 다시 ssh -AY remote_hostname, 그리고 git pull이제했다. 구성 변경으로 인해 내 ssh 키 쌍을 로컬 컴퓨터에서 호스트로 전달할 수 있습니다. -A에 옵션 ssh이 SSH 세션에 실제로 전달합니다. 자세한 내용은 여기를 참조하십시오.


0

아마 ssh-agent가 활성화되어 있지 않을 수 있습니다

  1. 자식 다운로드

http://git-scm.com/

  1. 설치

  2. ssh-agent 활성화

C : \ 프로그램 파일 \ Git \ cmd

start-ssh-agent


0

GitHub 계정 대시 보드로 이동하여 프로젝트 저장소를 찾은 후 설정 탭을 클릭 하십시오. 키 배치에서 SSH 키를 추가해야합니다. 터미널을 열고 다음을 입력하십시오.

cat ~/.ssh/id_rsa.pub | pbcopy 

이것은 id_rsa.pub 파일에서 키를 복사합니다. GitHub 대시 보드로 돌아가서 붙여넣고 키 추가를 클릭 하면됩니다.

Bitbucket 계정에도 동일한 솔루션이 적용됩니다.

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