본문 바로가기
리눅스/Part3. Ch05. 사용자 관리

05. (실습) AWS EC2 키파일 분실 문제 해결

by Engineer-Lee 2022. 12. 14.
반응형

EC2에 접근할 키파일을 분실했습니다. (예, 키를 저장하는 머신의 디스크 이슈)

 

방법1. 사용자 데이터를 통한 공개키 등록

- 새로 사용할 키페어(개인키, 공개키) 생성
- 사용자 데이터를 활용해 공캐키를 ~/.ssh/authorized_keys 에 등록
*사용자 데이터: 인스턴스를 시작할 때 실행할 명령 또는 명령 스크립트를 지정
- 실습링크: https://github.com/go4real/linux_campus/blob/main/Part3/Ch05_05/add_ssh_key.md

 

방법2. 인스턴스 Snapshot 생성 및 Snapshot 기반으로 새로운 인스턴스 생성 - 새로 사용할 키페어
(개인키, 공개키) 생성

- 기존 인스턴스의 머신 이미지를 생성
- 생성된 이미지를 활용해서 새로운 인스턴스를 생성
- 인스턴스 생성 시에 사용할 개인키를 지정

 

기타 방법.

- EC2 Instance Connect, AWS System Manager의 기능 활용, EC2 시리얼 콘솔 이용
-> 권한 부여, 사전 조건 등 존재하지만 좀 더 우아한 해법(재시작 X)을 제공
-> 기존 공개키를 재사용은 불가능
(RSA 암호화는 개인키로 공개키를 생성할 순 있으나 그 반대는 현재 컴퓨팅 파워로는 연산 불가능)

 


[실습] 새로운 ssh 접속 키 등록하기(방법 1)


0. 데모용 인스턴스 생성
 + EC2 생성 : ssh_demo


1. 새로운 키페어 생성 및 다운로드 
 + EC2 > 네트워크 및 보안 > 키 페어
 + 예, new-ec2-key
 cp ~/Downloads/new-ec2-key.pem ~/linux_campus && cd ~/linux_campus
 

2. 인스턴스 중지


3. 등록할 퍼블릭 키 생성 

chmod 400 ~/linux_campus/new-ec2-key.pem
ssh-keygen -y -f ~/linux_campus/new-ec2-key.pem


4. 인스턴스 중지 및 사용자 데이터 편집
 + 작업 > 인스턴스 설정 > 사용자 데이터 편집
 + PublicKeypair 부분은 3번의 ssh-keygen 실행 결과 전체를 입력

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: ubuntu
    ssh_authorized_keys: 
    - PublicKeypair


5. 인스턴스 시작


6. 새로운 개인키로 서버 접근 및 cloud-init 실행 확인

ssh -i ~/linux_campus/new-ec2-key.pem ubuntu@IP_ADDRESS
journalctl -b 0 -u cloud-init


7. 인스턴스 중지


8. 사용자 데이터 삭제


9. 인스턴스 시작

 

 

 

 

반응형