[AWS] AWS EC2 연결 오류(pem 키) 해결 - permission denied(public key)

기영·2024년 9월 25일
0

1. 우선 key.pem의 권한을 변경해야 한다.

$ chmod 400 key.pem

$ ssh -i <key.pem> ubuntu@<public ip>

이렇게 권한을 변경했는데도 오류가 나며 접속이 안 될 때가 있다.

이 경우는 ec2에 등록된 key.pem과 ssh에 접속에 쓴 key.pem이 다르기 때문에 일어난 것이다.

왜 그런지는 모르겠는데 우리 팀이 쓰던 서버에서 key.pem이 달라져 있었다.

이렇게 터미널로 ec2 인스턴스 접속이 불가능한 경우를 대비해 ec2 인스턴스 콘솔에서 접속이 가능하도록 서비스를 지원한다.
해당 ec2 인스턴스에 콘솔을 통해 접속하여 현재 인스턴스에 사용되는 key.pem을 알 수 있다.

2. ec2 인스턴스 콘솔로 연결

그 다음 해당 ec2인스턴스에 사용되는 key.pem 파일을 확인해야 한다.

$ cat ~/.ssh/authorized_keys

이제 여기에 나타나는 key와 내가 쓰던 key를 비교해야한다.

현재 ec2 인스턴스 콘솔에서 보이는 건 ssh 공개키 형태이다.
우선 내가 쓰던 .pem 파일을 ssh 공개키 형태로 만들어줘야 한다.

$ ssh-keygen -f key.pem -y

자, 이제 두 key.pem 파일을 비교하면 된다.

나는 여기서 두 key.pem 파일이 다르다는 것을 알 수 있었다.

키 정보가 다르기 때문에 서버에 있는 key를 변경해줄 것이다.

3. ec2 인스턴스 상 key.pem을 변경

$ sudo vim ~/.ssh/authorized_keys

다음과 같이 key 파일이 나오면 i를 눌러 입력모드(INSERT)로 들어간다.

그 후 공개키 부분을 내가 가지고 있는 로컬의 key.pem의 공개키로 바꿔준다.

이후 :wq를 입력하여 저장 후 나간다.

4. 성공

이와 같은 과정을 거쳐 서버의 key.pem 파일을 내가 가지고 있는 key.pem 파일로 변경해주었기 때문에 문제없이 접속이 가능하다!

📌 참고 자료 : https://velog.io/@pds0309/EC2-key%EB%A1%9C-ssh%EC%A0%91%EC%86%8D-Permission-Denied-public-key-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0

profile
computer engineering student

0개의 댓글