[AWS] 사용자데이터 편집으로 기존 EC2의 키페어 변경하기

pokcha's·2024년 7월 12일
0

aws

목록 보기
10/10

정말 드물게 여러 매니지드를 거치거나 관리 주체가 명확하지 않은 시스템을 관리하다 보면 EC2 키페어를 분실하는 경우가 생긴다.
거기에 서버 접속 계정 까지 분실한다면 EC2 사용을 못하는 경우가 생길 수도 있다.
이럴 때 EC2에 접속하지 않고 키페어를 변경하여 키페어로 EC2에 접속할 수 있는 방법을 알아보자.

1. 새로운 키페어 생성

기존에 사용중인 키페어를 변경해 보자.
시작 시 할당된 키페어를 분실하였다.

EC2>키페어에서 새로운 키페어를 생성한다.
key-new 라는 키페어를 생성했다.

새로 생성된 키를 로컬에 다운로드 받은 후에 권한을 변경한다.

$ chmod 400 “key-new.pem”

ssh-keygen을 사용하여 공개 키를 확인하고 복사한다.

$ ssh-keygen -y -f key-new.pem

2. EC2에 새로운 키페어 적용

변경할 EC2의 설정에서 사용자 데이터 편집을 한다.
사용자 데이터 편집을 하려면 EC2가 중지 상태여야 한다.

사용자 데이터를 텍스트로 수정을 선택하고 아래 스크립트를 붙여준다.
name: username 을 EC2 접속할 사용자 이름으로 바꿔준다.
여기서는 amazon linux를 사용하여 ec2-user 사용자로 바꿔 주었다.
위에서 복사한 공개 키는 PublicKeypair 위치에 붙여준다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
  - name: username
    ssh-authorized-keys:
    - PublicKeypair

3. 변경된 키페어로 접속하기

변경된 키페어는 콘솔에서는 반영되지 않는다.


ssh접속으로 새로운 key파일을 사용하여 ec2-user로 로그인 되었다.

4. 사용자 데이터 편집

사용자데이터에 공개 키를 바로 적용 시켜 놨기에 스크립트를 제거해 준다.
다시 인스턴스를 중지 시키고 사용자 데이터를 삭제한다.
사용자 데이터를 삭제해도 변경된 키페어로 접속이 된다!

EC2의 ~/.ssh/authorized_keys 파일에 저장된 공개 키를 확인해 보니 기존 키페어와 사용자데이터에 입력한 키페어가 추가되어 있다. 보안을 위하여 분실된 키페어는 삭제해 준다.

❗️인스턴스별 Default username
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html#connection-prereqs-get-info-about-instance
❗️키페어 변경 AWS 문서 참고
https://repost.aws/ko/knowledge-center/user-data-replace-key-pair-ec2

profile
AWS 운영기록 💾

0개의 댓글