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

Accessing key pairs section

  1. Chọn Create key pair

Creating a new key pair

  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

Configuring key pair settings

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 11

  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

Loading private key in PuTTYgen

  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 AAAAB3NzaC1yc2EAAAADAQABAAABAQCoxDsN+0lAZrBf8esvAYrHihZqbdNXKbg7cMgnoFtGiSi9OF86KMU69lq4lpn+tNjWw8+lXbh7YmldW0k7ld+9Hep5ZhVCjMlULUWKt/gfJQh3qdvrx+sQ/CDZkljlfmkKqBHO/FOd9s/GCLrwro2EqCnuPWeVrZOAz8eBExZg8gOTXuDviL2ITg3Si61U7zEDh/ePKeZgy+KfkDMmnG0JjKQoan8zDEv4C8ZcojPn9C4A9k0cXcZfqTd7Ge6ws5DxtkjHdfhxfjYv19Ua2iL7VREA4H/MxloZ9Dv+a8k3q2qTTlbcfJ36Ape2YoGb6DgQWmo9upMRKP+xZy/pOTTV new key

Extracting public key

  • 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. Lưu private key dưới định dạng .ppk:
  • Trong PuTTYgen, nhấn Save private key

  • Khi có thông báo, chọn Yes để lưu mà không đặt passphrase (nếu xuất hiện)

  • Nhập tên file là new-key và nhấn Save để lưu

  • File .ppk này sẽ được sử dụng khi kết nối tới instance bằng PuTTY.

Stopping the EC2 instance

  1. Trong giao diện EC2
  • Chọn EC2 Linux-instance
  • Chọn Instance state
  • chọn Stop instance

Stopping the EC2 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

Accessing user data settings

  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 AAAAB3NzaC1yc2EAAAADAQA......+xZy/pOTTV new key
  • Kiểm tra, và chắc chắn Public key được bắt đầu bằng ssh-rsa
  • Chọn Save

Configuring user data

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

Starting the EC2 instance

  • EC2 cần mất khoảng 5’ để Status check chuyển thành 3/3 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 :kp-linux trên giao diện

Noting instance IP address

  • 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 6

Configuring PuTTY connection Verifying connection details

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

Verifying connection details

  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