SSH 키를 몇 번 설정해도 Permission denied(publickey) 문제가 발생합니다.

6417 단어 GitGitHubMac

SSH에서 Permission Denied 발생

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

Please make sure you have the correct access rights
and the repository exists.
여느 때처럼gitpush의 말에 문제가 생겼습니다.
우선 최근에 Mac을 교체했기 때문에git의 설정에 문제가 있습니다.
SSH 키를 여러 번 재설정하여 잠시 해결했지만 해결할 수 없습니다.
그곳에서 해결 방법을 총결하다.
MacBook Pro 2018 macOS Mojave, 32GB
터미널 사용 iTerm
  • SSH 키 인증 상태
  • gitconfig의 확인
  • ~/.ssh/config 확인
  • ssh-T[email protected] 통과 여부
  • known_호스트 확인
  • 1.SSH 키의 인증 상태


    https://help.github.com/articles/error-permission-denied-publickey/
    "Error:Permission denied(publickey)"GitHub 공식에 따른 문제 해결

    ssh-agent를 통해 실제 사용을 확인하면
    The agent has no identifies.되다사실 그 전에 잠시 해결했을 때도 마찬가지였다.
    매번 리셋하면 The agent has no identifies.나 화났어.
    ssh의 개인 키 로그인
    ssh-add ~/.ssh/id_rsa
    분명히 그래야 하는데 다시 시작할 때마다
    그렇다면
    The agent has no identities.
    그래서 나는 매번 열쇠를 등록해야 한다고 고민했다.
    ssh-add -K ~/.ssh/id_rsa를 입력합니다.
    이로써 github의push도 ssh인증을 받아 문제없이 돌파했습니다.다행이다.
    난 또...
    다시 시작하고 sshadd-l
    The agent has no identities.
    다른 사이트에서 확인하면...
    ~/.ssh/config
    UseKeychain yes
    AddKeysToAgent yes
    빛내다
    인용원
    http://tktechblog.hatenadiary.jp/entry/2017/10/09/105702
    이런 일.나 이거 했어.
    아직 연결이 안 되네요 아 ︊(^o^)/

    2.gitconfig의 확인



    키워드
    컨텐트
    Host
    호스트 이름
    HostName
    호스트 주소 또는 IP 주소
    User
    로그인 사용자 이름
    IdentityFile
    로그인을 위한 개인 키 경로
    Port
    포트 번호 (기본값 22)
    TCPKeepAlive
    연결 상태를 계속하려면: yes가 계속하지 않을 때: no
    IdentitiesOnly
    IdentityFile:yes가 필요하지 않으면 no
    ServerAliveInterval
    서버에서 데이터를 보내는 데 시간이 초과된 초는 한동안 없습니다.(예) 120
    gitignore_global은 Git 관리의 모든 폴더에 적용되는 gitignore 같은 파일입니다.

    3.~/.ssh/config 확인



    4. ssh -T [email protected]꿰뚫다



    SSH 옵션
    컨텐트
    -i
    개인 키 지정
    -p
    포트 번호 지정
    -l
    로그인 사용자 이름 지정

    5. known_호스트 확인


    서버 SSH에 연결하면ssh/known_서버의 호스트 키가 호스트 파일에 추가됩니다.새 서버에 연결할 때 확인됩니다. 호스트 키는knownu입니다.호스트에 기재된 내용과 다르면 연결할 수 없습니다.
    ssh 옵션을 통해 이 호스트 키 검사를 비활성화할 수 있습니다.
    ssh -o StrictHostKeyChecking=no server-name
    
    이렇게hosts 방문을 개의치 않아도 됩니다.일괄 처리된 케이스 스크립트 등에서 암호가 없는 키를 사용할 때 유용할 수 있습니다.

    핑거프린트가 여기서 다르다는 걸 알았어요.



    이것은 #1을 고려하여 ssh-agent에 키를 다시 등록하여 확인할 때finger print

    그리고 이것은 실제gitpush 때의 행동이다
    known_호스트를 삭제한 후 연결합니다. 따라서 확인이 나타나지만finger print는 다릅니다

    RSA fingerprint


    핑거프린트가 뭐예요?
    키를 식별하는 데 사용되는 정보입니다.이른바 전자 지문.
    https://qiita.com/hotpepsi/items/128f3a660cee8b5467c6
    이 보도는 상세한 해설을 진행하였다.

    이미 모르기 때문에 SSH를 다시 발행하고 등록합니다



    ssh-T[email protected]에서 본 RSA key fingerprint와 비밀 키를 만들 때의 fingerprint는 이번에도 다르다.이것은 얄미운 예감이다.여기서gitpush라면 예감이 맞습니다.또permission denied 당했어.
    지지 않고 먹다가 마음에 드는 곳을 발견했다.
    Changing a remote's URL
    https://help.github.com/articles/changing-a-remote-s-url/

    If you're updating to use HTTPS, your URL might look like:
    https://github.com/USERNAME/REPOSITORY.git
    
    If you're updating to use SSH, your URL might look like:
    [email protected]:USERNAME/REPOSITORY.git
    
    이것은, 그중의 하나일 것이다. 그러나 나의 경우,github.com에서 링크를 시작합니다.

    그래서 gitconfig를 봤을 때.
    https://github.com/열다[email protected]:github입니다.com:의 설정입니다.
    왜, 이런 누락을 눈치채지 못했어!!!!!
    예전의 컴퓨터는 몇 년 전git 주위를 설정하고 방법을 잊어버렸다.
    그리고 SSH 주위의 지식이 부족하여 자신도 무엇을 하고 있는가
    설정 강좌를 할 때는 몰랐어요.
    P.S.
    평소에 인코딩할 때 구글을 설치하면 끝나요.
    새로 배운 설치법과 지식이 떨어지기 때문에 앞으로 Qiita에서 비망록을 만들고 싶습니다.
    SSH에 대한 잘 정리된 글입니다.
    eval은 일부 프로그래밍 언어가 가지고 있는 문자열을 표현식으로 평가하는 함수이거나 프로그램의 어떤 상하문에서 여러 개의 문장을 실행하는 하위 프로그램입니다

    좋은 웹페이지 즐겨찾기