EC2 pem키 Permission denied(public key) 해결

smlee·2022년 8월 17일
0

에러 일지

목록 보기
12/24

📖 문제 상황

gitlab-ci.yml을 작성하고 변수로 키들을 등록하는 도중, 아예 새로 발급 받아서 등록하는게 나을 거 같다는 생각을 했다.

그래서 서버에 접속을 하지 않은 채 공개키를 재발급하고 서버에 올리려고 type $env:공개키경로 | ssh USER@remote-host "cat >> .ssh/authorized_keys" 명령어를 사용하였는데 Permission denied가 떴고 ssh 명령어를 통해 접속하려고 해도 Permission denied(publickey)라는 에러가 발생하였다.

이를 위해 시도했지만 실패한 방법에는
(1) EC2 직렬 콘솔 접속 시도

  • root 비밀번호가 등록되어 있지 않았으며, sshd_config에서도 비밀번호 인증이 no로 되어있어서 접속할 수 없었다.

(2) 권한 변경

  • 스택오버플로우나 여러 블로그에서는 chmod 600이나 chmod 400으로 권한을 제한하면 된다는 글을 보아서 권한을 계속 변경하였지만 접속할 수 없었다.

(3) ssh-add를 통해 키 캐싱

  • 이것 역시 실패하였다. 명령어를 통해 키를 등록해도 역시나 Permission denied가 발생하였다.

🔐 해결

외주 도중 발생한 상황이어서 도저히 안 되면 인스턴스를 새로 만들고 SSL 연결 작업과 설정들을 모두 다시해야 하나라는 생각까지 했었다.

총 3명의 서버 개발자들이 있었는데 최대한 빨리 다른 서버 개발자들에게 상황을 공유했다. 다행히 1명이 오전에 접속을 하고 서버에 연결되어 있는 터미널을 닫지 않은 상황이라 서버에 연결되어 있었다. 따라서 다행히 인스턴스 리셋까지는 가지 않았다.

(1) AWS에서 새로운 pem키 발급


EC2 콘솔의 좌측 탭의 네트워크 및 보안 탭의 4번째 칸인 키 페어로 접속한다.

우측 상단의 키 페어 생성 버튼을 클릭한다.

키 페어 명을 작성하고 키 페어 생성 버튼을 누르면 키 페어가 다운로드 된다.

(2) 키를 이용하여 RSA 공개키 발급

.pem키를 PuTTY를 사용하여 .ppk 파일을 생성하고 .ppk 파일을 puttygen을 사용하여 RSA 공개키를 생성한다.

생성하면 큰 상자 안에 들어가 있는 키 정보를 서버에 등록한다. 다행히 서버에 접속해 있는 개발자가 있어서 그 분께 공개 키 정보를 건네드렸다. 서버의~/.ssh/authorized_keys에 해당 정보를 등록한다.

(3) 접속 완료

2번 과정을 마치면 이제 서버에서도 새로 발급 받은 키를 등록했으므로 생성한 키를 인식할 수 있으므로 ssh -i 새로 발급 받은 키 ubuntu@eip를 통해 접속을 하면 접속이 성공적으로 완료 된다.

0개의 댓글