git 에러: Permission denied (publickey) 해결
리눅스 서버 버전을 업그레이드한 후에 repo init 은 성공했는데, git fetch (cherry-pick) 이 안 되는 문제가 발생하였다.
입력한 명령어:
$ git fetch "ssh://이름@서버주소:29414/repository명" refs/changes/숫자 && git cherry-pick FETCH_HEAD
다음과 같은 에러가 났다.
이름@서버주소: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
1) 생성한 RSA key 가 날아갔나 싶어서 .ssh/ 폴더 밑을 확인해봤는데 키는 날아가지 않았다.
(생성 방법: https://oingdaddy.tistory.com/203)
2) .ssh/config 에 맨 아래 줄들을 추가하고서 해결되었다.
(정확한 출처를 찾지 못해서 직접 썼는데, 오타가 있을 수 있어 확인 필요)
Host 서버이름
HostName 서버주소
Port 29414
User 이름
HostkeyAlgorithms +ssh-dss,ssh-rsa
KeyAlgorithms +diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
PubkeyAcceptedKeyTypes +ssh-rsa
이걸 추가한 후에 git fetch 할 때 서버주소가 아닌 위에 설정한 서버이름으로 써야한다는 것을 주의해야한다.
$ git fetch "ssh://이름@서버주소:29414/repository명" refs/changes/숫자 && git cherry-pick FETCH_HEAD
$ git fetch "ssh://서버이름" refs/changes/숫자 && git cherry-pick FETCH_HEAD