EC2 public key denied 문제 해결

Alex·2024년 8월 15일

블레이버스 해커톤

목록 보기
10/13

EC2 서버에서 돌리는 JVM의 힙 메모리를 확인하기 위해서 Heap Dump 파일을 로컬로 전송하려고 했다. 그런데, 'public key denied'라면서 scp 전송이 안 됐다.

문제를 해결하려고 AWS 콘솔에서 퍼블릭 키와 관련된 내용을 수정하다 보니
SSH로 EC2에 접속하는 것도 퍼블리키 권한이 없다는 문제가 떠버렸다.

지금 우리가 운영하는 FUVE 서버가 이 인스턴스에 들어있고 HTTPS를 적용한 뒤, 프론트에서 이 도메인으로 API 요청을 하고 있는 탓에 이 인스턴스를 살려야했다.

우선, AWS에서 만든 키를 ssh 공개키로 변환한다.

ssh-keygen -f .\fuve.pem -y

지금은 ssh로 접속이 어려우니
AWS에서 콘솔로 인스턴스에 직접 접근한다.

위에서 만든 키와 현재 AWS에 있는 authorization 키를 비교해서 두개가 일치하는지 확인해야 한다.

그런데, ssh -rsa가 두번 써져 있었다.
ssh - rsa하나를 지우니 ssh에서 정상적으로 접속이 됐다.

scp 전송 실패

여전히 scp로 전송할 때는 pulickey문제로 권한이 허락되지 않았다.

구글링해서 찾아본 해결방법들을 시도해봤다.

1)scp 전송은 remote가 아닌 local 터미널에서 시도해야 한다.

-> 여전히 권한이 없다고 뜬다.

2)힙 덤프 파일의 접근권한을 변경한다.

sudo chmod 777 testdump.hprof

ls -al ~/fuve-->1로나온다
mkdir -p ~/memory
cp testdump.hprof ~/memory/ -->경로로 파일 복사

-->여전히 public key denied가 뜬다.

3) scp -i를 활용한다 (특정한 SSH 키파일을 사용해서 원격 서버에 접속할 때 사용)

scp -i 'pem키_주소' index.html ubuntu@'퍼블릭IP':/index.html

scp -i "C:\\Users\\정연호\\Desktop\\aws 키\\ 키" ubuntu@공개 ip:~/memory/testdump.hprof C:\Users\정연호\Downloads\

이렇게 해두면 된다!

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글