EC2의 key pair를 바꿔보자

Amazon EC2에 SSH로 접속하기 위해서는 key pair가 필요하다. EC2 instance를 생성할 때 이 key pair를 생성 또는 지정이 가능하다.
사용자는 private key를 다운로드 받을 수 있는데, 이 key파일(.pem)을 분실 할 경우, 해당 key의 EC2 instance는 더 이상 접근이 불가능하다.
이 key를 분실하였을때 대처 방법이 AWS 공식으로 제공되니 확인해보자.

공식 해결책

  • 프라이빗 키를 분실했을 때 Linux 인스턴스에 연결하는 방법
    • https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
  • 요약
    • 분실한 instance의 EBS를 분리
    • 다른 임시 instance에 해당 EBS를 부착
    • .ssh/authorized_keys 파일을 덮어 씀
    • 다시 해당 EBS를 원래 instance에 부착

실제로 했을 때 trouble shooting

  • EBS를 임시 instance에 붙인 후 mount가 되지 않음
    • Error 1: 잘못된 파티션 선택
      mount: /dev/xvdf1 is write-protected, mounting read-only
      mount: you must specify the filesystem type
      
    • Error 2-1: mount 시 뭔가 에러
      mount: wrong fs type, bad option, bad superblock on /dev/xvdf2,
             missing codepage or helper program, or other error
      
             In some cases useful info is found in syslog - try
             dmesg | tail or so.
      
      • 제대로 된 파티션을 지정했지만, 뭔가 잘못되었다고 함
      • ”$ dmesg tail” 을 실행해보면 로그가 표시됨
      • 참고: (ServerFault)Cannot mount an existing EBS on AWS
      • Error 1과 Error 2는 사실상 비슷한 이유
    • Error 2-2: duplicate UUID
      Filesystem has duplicate UUID 6785eb86-c596-4229-85fb-4d30c848c6e8 - can't mount
      

변경에 성공

  • 잘 안될 것 같지만 생각보다 잘 됨
  • 단, 안전을 위해 snapshot을 미리 만들어 둘 것
  • key가 변경되더라도 EC2 instance의 description에서는 Key pair name이 그대로 유지됨