programing

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

batch 2023. 5. 1. 20:41
반응형

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

이 오류를 보고 어떻게 해야 할지 아는 사람이 있습니까?

나는 터미널을 사용하고 있고, 나는 루트에 있으며, 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.

GitHub에서 사용자를 인증할 수 없습니다.따라서 시스템에 SSH 키를 설정하지 않았거나 키가 GitHub 계정과 연결되어 있지 않습니다.

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

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

저는 이 문제에 대해 알고 있습니다.ssh 키를 추가한 후 ssh 에이전트에도 ssh 키를 추가합니다(공식 문서에서).

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

모든 것이 정상적으로 작동한 후, Git은 이전에는 볼 수 없었던 적절한 키를 볼 수 있습니다.

~/.ssh 디렉토리에 구성 파일을 생성했습니까?다음과 같은 내용을 포함해야 합니다.

Host github.com 
 IdentityFile ~/.ssh/github_rsa

github_rsa라는 이름의 ssh 키를 생성했다고 가정합니다.

GitHub에 업로드했습니다.

참고: ~/.ssh/ 디렉토리에 키가 2개 이상 있는 경우 이 명시적 구성 방법을 따라야 합니다.이렇게 키를 지정하지 않으면 순서대로 키가 가져와 github 인증확인에 사용되므로 키 파일 이름에 따라 달라집니다.

SSH 키가 없는 경우 SSH 키를 생성하고 공용 키를 Github 계정에 연결해야 합니다.Github의 설명서를 참조하십시오.

이런 일이 저에게 일어났습니다.어떤 이유에서인지 나도 모르게 나의 기원이 엉망이 되었습니다.

설정이 여전히 올바른지 확인합니다.

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을 확인하고 설정할 수 있습니다.

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

git remote set-url origin https_link_to_repository

git push -u origin master

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

$git config --get remote.origin.url

결과 형식이 xxx.github.com :xxx/git@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 에이전트에 키 추가

  • ssh-agent가 사용되도록 설정되었는지 확인

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

  • SSH 키를 SSH 에이전트에 추가합니다.

    $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 " ", "를 합니다.ssh-keygen -t rsa -C "your_email@example.com"이렇게 하면 id_rsa 및 id_rsa.pub 파일이 모두 생성됩니다.

합니다. 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 로 이동하여 설정(키 및 pgp 키) 아래에 공용 키를 추가합니다.

먼저, 우리는 당신의 컴퓨터에 있는 기존의 ssh 키를 확인해야 합니다.터미널을 열고 다음을 실행합니다.

ls -al ~/.ssh

#or

cd ~/.ssh
ls

그러면 .vmdk 디렉토리에 있는 파일이 나열됩니다.

그리고 마지막으로 여러분이 보는 것에 따라 (제 경우에는):

 github_rsa  github_rsa.pub known_hosts

RSA를 설정해 보십시오. 그러면 "git push origin" 문제가 해결될 것입니다.

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

참고: RSA 인증서는 키 쌍으로 구성되어 있으므로 개인 인증서와 공용 인증서를 보유하게 되며, Github에 속하기 때문에 비공개 인증서에 액세스할 수 없습니다(이 경우). 하지만 이 오류가 발생할 때 누락될 수 있는 것은 공용 인증서입니다(적어도 제 경우는 그렇습니다).내 github 계정 또는 레포가 어떻게든 엉망이 되어 이전에 생성된 공개 키를 "연결"해야 했습니다.)

이것은 나에게 효과가 있었습니다.

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

이상입니다, 여러분!

저는 이 오류를 받고 있었습니다.알고 보니 방금 OSX를 시에라로 업그레이드했는데 이전 키가 더 이상 등록되지 않았습니다.

처음에 는 "macOS Sierra로 업그레이드하면 SSH 키가 손상되어 자체 서버가 차단됩니다."라고 생각했습니다.

하지만 저는 그것을 피했습니다.알고 보니 기존 키를 다시 등록해야 했습니다.

ssh-add -K

암호를 입력합니다.알았어!

기업 Github 계정과 연결하는 데 문제가 있는 경우 다음 단계를 수행합니다.

솔루션 #1

ERROR: git@github.com: Permission denied (public key). fatal: Could not read
from remote repository. Please make sure you have the correct access
rights

솔루션(OSX)

  • 터미널을 열고 아래 명령을 따릅니다.

  • cd ~

  • 스도수

  • SSH 키젠

    • 키(/var/root/.ssh/id_rsa)를 저장할 파일을 입력하십시오. $ id_rsa
    • 암호 입력(암호 구문 없음의 경우 비어 있음):엔터를 치다
    • 동일한 암호 구문을 다시 입력하십시오. $ Enter 키를 누릅니다.
  • cd ~/.vmdk

  • cat id_message.cat

  • 표시 내용을 복사합니다.여기에 이미지 설명 입력

  • GitHub 열기 프로필 아이콘 설정 >SSH 및 GPC 키

  • 새 SSH 키 버튼을 클릭

  • 복사한 제목 및 키 입력

  • 이제 문제가 해결되었는지 확인합니다.

솔루션 #2

ERROR 2: remote: Password authentication is not available for Git operations.
remote: You must use a personal access token or SSH key.
remote: See https://github.compnay.com/settings/tokens or https://github.compnay.com/settings/ssh
fatal: unable to access 'https://github.company.com/repo/app.git/': The requested URL returned an error: 403

2021년 8월 13일 비밀번호 인증 지원이 해제되었습니다.대신 개인 액세스 토큰을 사용하십시오.

https://namespaceit.com/blog/remote-support-for-password-authentication-was-removed-on-august-13-2021-please-use-a-personal-access-token-instead

네 저도 이런 질문이 있었습니다 :/ 저는 제 프로젝트를 HTTP 타입(SSH 타입이 아님)으로 Github에 푸시하려고 했습니다.매번 누를 때마다 사용자 이름과 암호를 입력해야 했습니다.그래서 먼저 아래 유형과 관련된 코드를 입력했습니다.

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

그리고 저는

git@github.com : 권한이 거부되었습니다(공개 키).치명적: 원격 리포지토리에서 읽을 수 없습니다.

그래서 저는 아래의 방법으로 문제를 해결했습니다.

  1. git remote rm origin 원격 격소장제거원저거제▁remove▁your원▁repos격▁git.
  2. git remote 합니다.

= URL =https://github.com/<username>/<repository>.git

  1. git remote add origin URL 을 다시 하여 원격 저장소를 .
  2. git push -u origin master
    콘텐츠를 원격 리포지토리에 푸시할 수 있습니다.을 받아 분기를 에 알려주지 :) 여기를 "-u" 용적분 기를들 만고원 에격저분 도에추 는다단 어받계 음분않 푸시할 알지습니 지리다를기떤 :)
    그리고 여기서 Linux git를 사용하면 콘텐츠를 푸시하기 전에 사용자 이름과 암호를 묻습니다.그리고 관련 자격 증명을 제공합니다.

푸시할 때마다 사용자 이름과 암호를 제공하지 않으려면 Git 구성을 변경해야 합니다.

구성을 하려면 Git 성을나려면하열구 -git config --global --list
알게 될 것입니다

user.name=<your_username>
user.email=<your_email>

따라서 자격 증명을 추가해야 합니다.git 구성에 대한 도우미 특성:

5.git config --global --add credential.helper store새할 수 . 에 새 항목을 추가할 수 있습니다.git add.,git commit -m "<message>", git push
그리고 이제 git도 당신의 사용자 이름과 비밀번호를 요청할 것이고 그것이 마지막이 될 것입니다.를 요청하지 것입니다 :)

제가 당신에게 가장 좋은 답을 줄 수 있다고 생각합니다. 당신의 git 앱은 루트 사용자 디렉토리에서 당신의 id_rsa.pub을 읽습니다.

/home/root/.ssh/id_rsa.pub

그래서 /home/your_username/.ssh/id_rsa.pub의 키를 git으로 읽을 수 없습니다.따라서 /home/root/.ssh/에 키를 생성해야 합니다.

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

그런 다음 당신의 github 계정에 있는 키를 복사합니다.저한테는 효과가 있어요.드셔보세요.

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

리포지토리의 홈 디렉토리에서 다음을 수행합니다.

$ ls -a

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

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

마지막 줄을 당겨야 하는 리포지토리의 HTTPS로 변경합니다.

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

".git modules"저장하고 하위 모듈에 대한 명령을 실행하면 ".git"이 업데이트됩니다.

".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를 리포지토리 페이지 맨 위에서 찾을 수 있습니다.

ㅠㅠssh-add -l에는 Github 계정의 SSH 키 목록에 있는 SSH 키의 지문이 표시됩니다.

계정으로 에는 를 합니다.ssh-add키에 (에서 수 있음)~/.ssh그것은 이름입니다id_rsa기적으실다니행됩을 할 수 .ssh-add id_rsa).

또는 다음 지침에 따라 SSH 키 쌍을 생성합니다.

저는 이전에 제 php 프로젝트 중 하나를 위해 github을 사용하고 있었습니다.github을 사용하면서 https 대신 ssh를 사용했습니다.저는 기계를 그렇게 설정했고, 제가 코드를 커밋하고 푸시할 때마다 RSA 키 암호를 묻곤 했습니다.

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

어떻게 풀었나요?

  1. 이 명령을 실행하여 git에 ssh 대신 https를 사용하도록 지시했습니다.

    git config --global url."https://".insteadOf git://
    
  2. 원격이 있으면 제거합니다.

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

PS: 디버그 프로세스 중에 ssh를 제거하면 문제가 해결될 것이라고 생각하여 시스템에서 ssh를 제거했습니다.네, 알아요!!:)

좋아요. 이에 대한 몇 가지 해결책이 있습니다. 그 중 일부는 이미 언급되었을 수도 있지만 함께 유지하기 위해서입니다.

  • 키가 있는지 확인합니다. 기본적으로 다른 ~/.vmdk/ 폴더(예: id.vmdk 및 id.vmdk.vmdk).

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

    chmod 600 ~/.vmod/id_dll

    chmod 644 ~ /.vmod/id_vmod.vmod

  • 공용 키(id_message.dll)의 내용이 원격 저장소 구성에 업로드된 내용과 일치하는지 확인합니다.

  • 마지막으로 ssh 에이전트 문제 해결: ssh-add

추가 정보: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html

저는 최근에 같은 문제를 겪었습니다.이 방법은 즉시 해결해야 하는 경우에 도움이 될 수 있지만 시스템을 다시 시작할 때마다 수행해야 합니다.

터미널에서 다음을 실행합니다.ssh-add ~/.ssh/id_rsa

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

키(ID)에 대한 쓰기 액세스를 허용하고 다음을 클릭합니다.

여기에 이미지 설명 입력

윈도우즈의 경우 SSH를 통한 Github 사용에서 자세한 내용을 확인하십시오.

제 연구 결과 중 몇 가지를 추가하고 싶습니다.

사중인경우를 .GitBash가 SSH 파일에 되어 있는지 합니다.~/.ssh/id_rsa.

으로 기값GitBash에 대한 ~/.ssh/id_rsaSSH 키의 기본 경로입니다.

파일 이름 심어파일이름도지이▁even.id_rsa 를 다른 .Permission Denied(publickey)message

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

편집

Gitbash를 사용하는 경우 Windows에서 관리자를 사용하여 이 항목에 추가하려면

TLDR:

  1. 꼭 가지고 있어야 합니다.write의 포에서에포레▁the▁it▁에서 구성)settings).
  2. 공용 키가 Github 계정의 에 있는지 확인합니다.

일반적으로 이 오류는 새로 설치된 시스템에서 일부 repo를 복제하려고 할 때 발생합니다.요청을 수신하면 github은 먼저 공개 키 해시를 확인합니다.공용 키가 사용자와 일치하지 않으면 github이 이 요청을 거부합니다.이 경우는 시스템이 새 시스템이고 SSH 키가 새로 생성된 경우에 일반적입니다.

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

비밀번호만 묻는 것으로 git push라고 말할 때 sshurl로 로그인하려고 하는 것 같습니다. http url을 사용하는 것이 더 낫습니다.

또한 unbuntu에서도 BitBucket의 설정에 SSH 키가 이미 입력되어 있었는데, 이 문제가 발생했습니다.그 이유는, 저는 다음을 시도하고 있었습니다.

sudo git push origin master

이유는 모르겠지만, 사용함으로써 해결되었습니다.

git push origin master

스도 사용 안 함.

나를 위해 시도한 것은...

eval "$(ssh-agent -s)"

그럼 나는 뛰어요

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

키를 생성하기 위해 실행할 수 있습니다.

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

이렇게 하면 키 쌍(공용 및 개인)이 생성됩니다.

키를 GitHub에 저장하여 보다 자세히 읽을있습니다. 새 SSH 키를 GitHub 계정에 추가합니다.

다른 사람들에게 도움이 되길 바랍니다 :)

저는 @Batman과 비슷한 문제를 겪고 있었습니다.하지만 /usr/local/src/projectname으로 실행했기 때문에 sudo 없이 실행하는 것은 선택사항이 아니었습니다.

환경(~/.ssh/ 경로)을 보존하려면 -E 플래그를 추가하기만 하면 됩니다.

$ sudo -E git clone git@your_repo

만수도로부터:

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

다음을 사용하여 유사한 오류 메시지에 대한 해결책을 검색하는 동안 이 페이지를 찾았습니다.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의 질문에 대한 해결책이 아니라 이 페이지를 접한 다른 사람들에게 유용하므로 여기에 게시하십시오.

로 저 경우에는 경엔우내엔▁note경.git pull로컬 컴퓨터에서 잘 작동합니다(즉, ssh 키가 설정되어 GitHub 계정에 추가된 경우 등).나는 이것을 추가함으로써 내 문제를 해결했습니다.~/.ssh/config에서: 예:

Host *
     ForwardAgent yes

다음 에 그런 다원호다연시결다니로 했습니다.ssh -AY remote_hostname,그리고.git pull이제 작동했습니다.구성을 변경하면 로컬 시스템에서 모든 호스트로 SSH 키 쌍을 전달할 수 있습니다.-A에 대한 선택권.ssh실제로 SSH 세션에서 전달합니다.자세한 내용은 여기를 참조하십시오.

Widows-10을 사용하는 경우 다음 지침을 여기에 이미지 설명 입력따르십시오.저한테는 효과가 있어요.

  1. 관리자로 터미널 열기

  2. 다음 명령을 실행합니다. "syslog-keygen".SSH 키가 생성되고 생성된 폴더가 표시됩니다.내 이미지여기에 이미지 설명 입력 확인

  3. 생성된 "다운로드 키"를 복사

  4. github 프로필로 이동 ---> 설정 --> SSH 및 GPH를 클릭합니다 --> "새 SSH 키 단추"를 클릭하고 "ssh 키"를 붙여넣은 후 마지막으로 "추가 단추"를 클릭합니다.

다른 사람이 이걸 필요로 할 경우에 대비해서요.는 다과같은다이른름의를키다만들니습었과 같은 다른 이름의 .ar-2022-ssh사용자의 .vmdk 폴더에 있습니다.이 문제는 기존 SSH 키를 확인하면 GitHub에 대해 지원되는 공용 키가 다음 중 하나로 지정된다는 입니다.

id_rsa.pub
id_ecdsa.pub
id_ed25519.pub

키를 생성할 때 SSH 키 이름 중 하나로 변경하면 GitHub에 연결할 수 있습니다.

언급URL : https://stackoverflow.com/questions/12940626/github-error-message-permission-denied-publickey

반응형