Truy cập khi mất Key Pair EC2-Linux bằng User Data

Chúng ta sẽ giải quyết vấn đề khi mất key pair truy cập

Key Pair được dùng để mã hóa và giải mã thông tin đăng nhập vào máy chủ ảo EC2.

Trong trường hợp mất key pair chúng ta sẽ tạo key pair mới, thực hiện việc replace PublicKeypair bằng EC2 User Data để tiếp tục SSH vào EC2

Lưu ý:

  • Giải pháp này cần stop EC2, sẽ gây mất data nếu EC2 sử dụng instance store volumes, nên cần sao lưu dữ liệu trước khi stop EC2.
  1. Tạo Key Pairs mới, trong giao diện EC2
  • Chọn Key Pairs

create vpc for linux instance

  1. Chọn Create key pair

create vpc for linux instance

  1. Tiếp theo, tại giao diện Create key pair
  • Điền: new-key
  • Chọn RSA
  • Chọn .pem
  • Chọn Create key pair

create vpc for linux instance

Lưu ý:

Private key (tên: new-key) vừa được tạo, sẽ lưu vào máy local, Public key vừa được tạo sẽ lưu trữ trên AWS. Vì vậy chúng ta sẽ không thấy được giá trị của Public key, nên cần sử dụng Putty để truy suất. new-key vừa được tạo đuôi .pem, cần dùng puttygen để lưu trữ key với đuôi .ppk để dùng cho bước 10

  1. Truy suất Public key
  • Bật puttygen
  • Chọn load
  • Chọn All File (.)
  • Chọn new-key (vừa tạo ở bước 3)
  • Chọn Open

create vpc for linux instance

  1. Tiếp đến, tại Key comment, điền new key
  • Chọn và copy toàn bộ giá trị Public key trong khung phía trên,

Ví dụ: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCa6Ed6rKQCBb1Mz4M3I29GS1eUz4Eolkg6G/2X8yOQG8E6ccUYbqTRxgsjZdjq0+BWOz2QeigFywhn6Kvgm2vxAV6T5fgVp/yoNCOSJRmCnhKeug8zPUPAAPxyfMa0prBHuxGzMq+esIbTMEBkfPbt8KTqmUmcBblkdK8N3ST+pdKFDxg/f7QangRdJFAF856sKmewFLEM7Za1LkIBoTgtBQW4ZS5ABBhOtrdo95/I/6CaNvoyG0CK/yI9Ci8emJQHL2GhryuFhVMzsR8ynct4xzuDcClPI478QJDlWNFw9lbnjKaBH8YXQharHkP0Hjxu7JiYNoasuv1SH3Dwf0PD new key

create vpc for linux instance

  • Lưu ý: chuỗi ký tự phía trên chỉ là ví dụ, cần copy đẩy đủ giá trị Public key được truy suất từ puttygen của bạn, copy dù thiêú một ký tự - sẽ làm cho cả giải pháp này thất bại!
  1. Trong giao diện EC2
  • Chọn EC2 Linux-instance (tham khảo cách tạo EC2-linux trong bước 4.1)
  • Chọn Instance state
  • chọn Stop instance

create vpc for linux instance

  1. Tiến hành Edit User Data
  • Chờ EC2 Linux-instance có trạng thái Stopped
  • Chọn Actions
  • Chọn Instance settings
  • Chọn Edit user data

create vpc for linux instance

  1. Tiếp theo,
  • Chọn Modify user data as text
  • Tại dòng name: điền user name của EC2: ec2-user (tham khảo các user name khác của các OS còn lại: link)
  • Dán giá trị đã copy Public key tại bước 5 vào dưới dòng ssh-authorized-keys
  • Sau đó, sao chép và dán toàn bộ câu lệnh bên dưới vào khung,
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: ec2-user
    ssh-authorized-keys:
    - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCa6Ed6rKQCBb1Mz4M3I29GS1eUz4Eolkg6G/2X8yOQG8E6ccUYbqTRxgsjZdjq0+BWOz2QeigFywhn6Kvgm2vxAV6T5fgVp/yoNCOSJRmCnhKeug8zPUPAAPxyfMa0prBHuxGzMq+esIbTMEBkfPbt8KTqmUmcBblkdK8N3ST+pdKFDxg/f7QangRdJFAF856sKmewFLEM7Za1LkIBoTgtBQW4ZS5ABBhOtrdo95/I/6CaNvoyG0CK/yI9Ci8emJQHL2GhryuFhVMzsR8ynct4xzuDcClPI478QJDlWNFw9lbnjKaBH8YXQharHkP0Hjxu7JiYNoasuv1SH3Dwf0PD new-key
  • Kiểm tra, và chắc chắn Public key được bắt đầu bằng ssh-rsa
  • Chọn Save

create vpc for linux instance

  1. Start lại EC2 Linux-instance
  • Chọn Instance state
  • Chọn Start instance

create vpc for linux instance

  • EC2 cần mất khoảng 5’ để Status check chuyển thành 2/2 checks passed, sẵn sàng cho bước kế tiếp
  1. Truy cập vào EC2 Linux-instance
  • Kiểm tra Private IP & key name :old-key trên giao diện

create vpc for linux instance

  • Thực hiện kết nối bằng Putty, với Private key (tên: new-key) tạo trên bước 3

create vpc for linux instance

  • Xem Private IP thể hiện trên Putty giống với Private IP của EC2 trên giao diện

create vpc for linux instance

  1. Chúc mừng bạn đã đăng nhập vào được EC2 với OS Linux bằng việc replace PublicKeypair

Lưu ý:

  • Với giải pháp này, bạn chỉ có một cơ hội duy nhất để cập nhật PublicKey bằng EC2 user data. Vì vậy, cẩn thận khi sao chép giá trị từ puttgen sang user data, đảm bảo: bạn đã sao chép đầy đủ trước khi start EC2.
  • Vì khi start EC2 là bắt đầu quá trình cloud-init với việc cấu hình tệp .ssh/authorized_keys để bạn có thể log in vào EC2 bằng PrivateKey