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.
- Tạo Key Pairs mới, trong giao diện EC2
- Chọn Create key pair
- 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
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
- 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
- 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
- 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!
- 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
- 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
- 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
- Start lại EC2 Linux-instance
- Chọn Instance state
- Chọn Start 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
- Truy cập vào EC2 Linux-instance
- Kiểm tra Private IP & key name :old-key trên giao diện
- 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
- Xem Private IP thể hiện trên Putty giống với Private IP của EC2 trên giao diện
- 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