Tạo kết nối SSH với Amazon EC2 Instance Connect
Khi chạy các instance Amazon EC2, bạn cần phải quản lý chúng. Phương pháp truyền thống để quản lý các máy Linux từ xa là kết nối với hệ điều hành Linux qua SSH và thực thi các lệnh cần thiết, chỉnh sửa các tệp cấu hình, v.v. Người dùng có thể đăng nhập vào hệ điều hành Linux qua SSH bằng tên người dùng và mật khẩu hoặc bằng tên người dùng và khóa bảo mật. Tuy nhiên, để kết nối với các instance EC2 qua SSH, người dùng chỉ có thể sử dụng tên người dùng và khóa bảo mật. Chính sách này được thiết lập trong AWS EC2 nhằm tăng cường bảo mật. Bài viết trên blog này giải thích cách kết nối với các instance AWS chạy Linux qua SSH từ các máy chạy Windows và Linux.
Tải xuống khóa từ AWS
Khi bạn tạo một phiên bản EC2 mới bằng cách sử dụng trình hướng dẫn trong AWS Management Console, một cặp khóa sẽ được tạo ra vào cuối quá trình tạo phiên bản EC2. Một cặp khóa bao gồm một khóa riêng và một khóa công khai. Secure Shell (SSH) là giao thức mã hóa, và cặp khóa này được sử dụng để mã hóa kết nối theo phương thức bất đối xứng. Khóa công khai có thể được tạo ra từ khóa riêng tư. Khi cặp khóa được tạo cho một instance Amazon EC2, khóa công khai sẽ được lưu trong cấu hình hệ điều hành Linux được cài đặt trên instance EC2 đó, còn khóa riêng tư sẽ được người dùng tải xuống.
Bạn phải tải xuống khóa riêng tư ở bước cuối cùng của quy trình tạo instance Amazon EC2 và lưu trữ khóa này ở nơi an toàn. Instance EC2 sẽ không được tạo cho đến khi bạn tải xuống khóa riêng tư. Khóa riêng được cung cấp dưới dạng tệp PEM. Hãy lưu ý rằng đây là cơ hội duy nhất của bạn để tải xuống khóa cho instance AWS EC2 hiện tại.
Tôi tải xuống khóa riêng và lưu tệp này với tên blog01-key.pem .
C onnect to EC2 Instance via SSH Using PuTTY
PuTTY là một trình khách SSH miễn phí mà bạn có thể cài đặt trên Windows. Bạn phải chuyển đổi tệp PEM đã tải xuống sang định dạng tệp PPK, định dạng được PuTTY hỗ trợ, trước khi có thể kết nối với AWS qua SSH. Vì lý do này, bạn cần sử dụng tiện ích PuTTY Key Generator (PuTTYgen), được cài đặt cùng với PuTTY từ một tệp cài đặt duy nhất. Bạn cũng có thể tải xuống puttygen.exe theo cách thủ công. PuTTYgen được sử dụng để tạo khóa RSA và DSA.
Do đó, tôi có ba tệp trên máy tính Windows mà từ đó tôi sẽ kết nối với các instance EC2:
blog01-key.pem
putty.exe
puttygen.exe
Các tệp này nằm trong thư mục “ C:AWS SSH ” trong ví dụ này.
Mở Trình tạo khóa PuTTY (PuTTYgen) bằng cách nhấp vào tệp puttygen.exe hoặc biểu tượng tắt của tệp này.
Nhấp vào Load trong cửa sổ PuTTYgen.
Nhấp vào “Select All Files” (*.*) và duyệt đến tệp PEM. Chúng ta chọn “ C:AWS SSHblog01-key.pem “. Sau đó nhấp vào ” Open“.
Đọc thông báo hiển thị và nhấp vào ” OK“.
Bây giờ bạn có thể thấy chuỗi khóa công khai của mình trong cửa sổ PuTTYgen. Sử dụng cấu hình như hiển thị trong ảnh chụp màn hình bên dưới.
Loại khóa cần tạo: RSA
Số bit trong khóa được tạo: 2048 bit
Bạn có chắc chắn muốn lưu khóa này mà không có cụm mật khẩu để bảo vệ nó không?
Nhấn Yes nếu bạn đồng ý. Nếu không đồng ý, hãy quay lại và bảo vệ khóa bằng cụm mật khẩu.
Lưu khóa riêng vào một vị trí an toàn. Tôi lưu khóa dưới tên “ C:AWS SSHAWS EC2 SSH.ppk “. Nhấp vào Save.
H ow Cách kết nối SSH vào máy chủ EC2 từ Windows
Kiểm tra địa chỉ IP công khai của máy chủ AWS EC2 của bạn. Máy chủ phải ở trạng thái đang chạy mới có địa chỉ IP công khai. Trong trường hợp của tôi, địa chỉ IP công khai là 52.55.222.44 . Tôi sẽ sử dụng địa chỉ IP này để kết nối với AWS qua SSH.
Mở PuTTY trên Windows. Chạy putty.exe hoặc biểu tượng tắt phù hợp.
Truy cập SSH > Auth.
Nhấp vào Browse và chọn tệp PPK (khóa riêng tư). Tôi chọn tệp “ C:AWS SSHAWS EC2 SSH.ppk ” được tạo ra trong PuTTYgen trước đó.
Quay lại màn hình Session trong PuTTY và nhập địa chỉ IP công khai của máy chủ EC2 của bạn vào trường Host Name (hoặc địa chỉ IP) . Đảm bảo rằng loại kết nối là SSH . Tôi nhập 52.55.222.44 , đây là địa chỉ IP của máy chủ EC2 của tôi được sao chép từ Bảng điều khiển Quản lý EC2. Cổng TCP 22 đã được chọn. Nhấn Open.
Cảnh báo bảo mật sẽ hiển thị. Đọc thông báo và nhấn Accept để tiếp tục và kết nối với máy chủ EC2. Hộp thoại này sẽ hiển thị khi bạn kết nối với một máy chủ từ xa cụ thể lần đầu tiên. Dấu vân tay hiển thị trong thông báo phải trùng khớp với dấu vân tay của máy ảo EC2.
Nhập tên người dùng vào cửa sổ bảng điều khiển. Vì tôi sử dụng Ubuntu Linux trên máy ảo EC2 của mình, tôi sử dụng ubuntu, – đây là tên người dùng mặc định được cấu hình cho máy ảo này khi triển khai từ Amazon Machine Image (AMI) tương ứng.
Tên người dùng mặc định cho các loại AMI Linux khác nhau trên AWS:
- Amazon Linux 2 hoặc Amazon Linux AMI: ec2-user
- CentOS: centos hoặc ec2-user
- Debian: admin
- Fedora: fedora hoặc ec2-user
- Red Hat Enterprise Linux (RHEL): ec2-user hoặc root
- SUSE: ec2-user hoặc root
- Ubuntu: ubuntu
- Oracle: ec2-user
- Bitnami: bitnami
Khi bạn thấy dấu nhắc lệnh của vỏ lệnh Linux (trong trường hợp này là bash), bạn có thể thực thi các lệnh trên máy Linux từ xa đang chạy trên AWS. Điều này có nghĩa là bạn đã thiết lập cấu hình SSH cho AWS EC2 đúng cách trong PuTTY.
Chuyển tệp qua SSH sang các máy chủ Amazon EC2
Tôi đã cấu hình quyền truy cập SSH từ xa vào máy chủ EC2, và giờ đây tôi có thể kết nối với các máy chủ AWS qua SSH, chạy lệnh, chỉnh sửa cấu hình, v.v. Tuy nhiên, bạn cũng có thể cần chuyển tệp qua SSH từ máy tính Windows của mình sang các máy chủ AWS hoặc theo hướng ngược lại. Có các giao thức truyền tệp hoạt động qua SSH để truyền tệp một cách an toàn từ máy này sang máy khác, ví dụ như Giao thức truyền tệp an toàn (SFTP) và Giao thức sao chép an toàn (SCP).
Để truyền tệp qua SSH đến các máy chủ AWS từ Windows, bạn có thể sử dụng WinSCP, đây là một công cụ miễn phí dành cho Windows. Lưu ý rằng scp phải được cài đặt trên máy Linux từ xa đang chạy trên AWS.
Sau khi cài đặt WinSCP trên máy tính Windows, hãy khởi chạy ứng dụng.
Chọn SFTP làm giao thức tệp và trong trường Host name , nhập địa chỉ IP công khai của instance EC2 mà bạn muốn kết nối qua SSH để chuyển tệp. Nhập tên người dùng cho instance EC2 của bạn. Trong ví dụ của tôi, tôi sử dụng 52.55.222.44 làm địa chỉ IP và ubuntu làm tên người dùng.
Nhấp vào Advanced trong cửa sổ chính của WinSCP.
Truy cập SSH > Authentication trong cửa sổ Advanced Site Settings . Nhấp vào … trong phần Authentication parameters và chọn khóa riêng tư mà bạn đã tạo trước đó trong PuTTYgen. Trong trường hợp của tôi, tôi chọn “ C:AWS SSHAWS EC2 SSH.ppk “. Nhấp vào OK để lưu cài đặt và quay lại cửa sổ chính của WinSCP.
Nhấp vào Login trong cửa sổ chính của WinSCP.
Một thông báo cảnh báo sẽ xuất hiện, tương tự như khi kết nối với máy chủ EC2 từ PuTTY lần đầu tiên. Nhấp vào Yes để tiếp tục.
Nếu cấu hình SSH cho AWS EC2 chính xác và bạn đã thiết lập thành công các thông số kết nối SSH trong WinSCP, bạn sẽ thấy cửa sổ có hai khung theo phong cách Commander. Thư mục người dùng của máy Windows cục bộ được hiển thị ở khung bên trái, còn thư mục chính của người dùng trên hệ điều hành Linux đang chạy trên AWS được hiển thị ở khung bên phải. Bạn có thể kéo và thả tệp từ khung này sang khung kia, cũng như sao chép, đổi tên hoặc xóa tệp trên máy cục bộ và máy từ xa. 
Kết nối với AWS qua SSH từ Linux
Khác với Windows, Linux có trình khách SSH tích hợp sẵn. Trong giao diện dòng lệnh của máy Linux cục bộ, hãy sử dụng lệnh như sau để kết nối với các máy ảo AWS EC2 chạy hệ điều hành Linux qua SSH:
ssh -i file_name.pem ubuntu@ip_address
Chuyển đến thư mục chứa tệp khóa riêng tư .pem trên máy Linux. Trong ví dụ này, tôi sử dụng Ubuntu và đã tải xuống tệp blog01-key.pem vào thư mục ~/Downloads/.
cd ~/Downloads/
ssh -i blog01-key.pem ubuntu@52.55.222.44
Trong đó, ubuntu là tên người dùng trên máy Linux từ xa, và 52.55.222.44 là địa chỉ IP của máy Linux từ xa.
Nếu bạn chạy lệnh này ngay bây giờ, bạn sẽ nhận được lỗi:
Cảnh báo: Tệp khóa riêng tư không được bảo vệ.
Quyền truy cập cho ‘blog01-key.pem’ quá rộng.
Yêu cầu là khóa riêng tư của bạn không được phép truy cập bởi người khác.
Khóa riêng tư này sẽ bị bỏ qua. Tải khóa: quyền pad.
Quyền truy cập bị từ chối (khóa công khai).
Bạn cần thiết lập quyền truy cập thấp hơn (nghiêm ngặt hơn) vì lý do bảo mật.
chmod 400 ./blog-key.pem
Sử dụng 400 nếu các khóa chỉ được phép đọc bởi bạn.
Sử dụng 600 nếu bạn cần các khóa có thể được đọc và ghi bởi chính bạn.
Bây giờ bạn có thể kết nối với các instance AWS EC2 qua SSH từ máy Linux của mình bằng lệnh:
ssh -i blog01-key.pem ubuntu@52.55.222.44
Bây giờ tôi đã kết nối qua SSH với một instance Amazon EC2.
Chuyển tệp qua SSH sang Amazon EC2 trên Linux
Bạn cũng có thể chuyển tệp qua SSH sang các instance AWS bằng cách sử dụng SCP trên Linux. Đảm bảo rằng bạn đã thiết lập kết nối SSH AWS đến máy chủ Linux từ xa từ máy Linux cục bộ của mình. Sau đó, mở một cửa sổ terminal mới trên máy Linux cục bộ và kết nối với máy chủ EC2 bằng lệnh như sau:
scp -i /path/key_name.pem /path/file_name.txt user_name@ec2_instance_IP_address:/path_to_file
Trong ví dụ của tôi, tôi sử dụng lệnh:
scp -i ~/Downloads/blog01-key.pem ~/Downloads/file.txt ubuntu@52.55.222.44:/home/ubuntu
Việc chuyển tệp qua SSH đến máy chủ AWS đã hoàn tất thành công.
Để sao chép tệp theo hướng ngược lại (từ máy Linux trên AWS EC2 sang máy Linux cục bộ của bạn), hãy sử dụng lệnh như sau:
scp -i /path/key_name.pem user_name@ec2_instance_IP_address:/path_to_file/my-file.txt path/my-file2.txt
Trong trường hợp của tôi, tôi sử dụng lệnh:
scp -i ~/Downloads/blog01-key.pem ubuntu@52.55.222.44:/home/ubuntu/file1.txt ~/Downloads/file1-copy.txt
Như bạn thấy trong ảnh chụp màn hình, tệp đã được sao chép thành công. Bạn có thể sao chép các tệp quan trọng từ một instance Amazon EC2 sang máy tính cục bộ cần thiết và sao lưu các tệp đó. Hãy thực hiện Sao lưu AWS EC2 thường xuyên để tránh mất dữ liệu.
Cách thêm khóa mới cho một instance AWS
Bạn có thể tạo thêm một cặp khóa cho một instance EC2 hiện có để kết nối với các instance AWS qua SSH sau khi đã tạo instance AWS EC2. Bạn có thể cần thực hiện việc này để cung cấp quyền truy cập SSH vào instance EC2 cho người dùng khác. Khi bạn cho rằng người dùng không cần kết nối qua SSH vào các instance AWS, bạn có thể xóa khóa công khai khỏi máy Linux đang chạy trên AWS EC2 mà không cần tạo lại khóa mới thay thế cho khóa được tạo ra tại thời điểm tạo instance.
Mở Bảng điều khiển quản lý EC2 trong Bảng điều khiển quản lý AWS.
Truy cập Network & Security trong thanh điều hướng và nhấp vào Key Pairs.
Tất cả các cặp khóa hiện có đều được hiển thị trên trang này. Bạn có thể nhập một phần tên của cặp khóa hiện có vào trường tìm kiếm để tìm cặp khóa đó.
Nhấp vào nút Create key pair ở góc trên bên phải của giao diện web để tạo một cặp khóa mới cho một instance EC2 hiện có.
Chọn .pem làm định dạng khóa riêng tư nếu bạn cần sử dụng khóa trên Linux với OpenSSH hoặc chọn .ppk nếu bạn cần sử dụng khóa trên Windows với PuTTY. Vì tôi sẽ sử dụng một máy Linux cục bộ để kết nối với các instance EC2 của AWS qua SSH bằng khóa mới, nên tôi chọn tùy chọn khóa .pem . Bạn có thể thêm thẻ nếu cần. Nhấn Create key pair khi sẵn sàng để tiếp tục.
Lưu tệp đã tải xuống vào một nơi an toàn. Trong trường hợp của tôi, tên tệp đã tải xuống là blog02-temp.pem và tôi lưu tệp này vào thư mục Downloads trong thư mục người dùng chính.
Lấy khóa công khai từ cặp khóa mới
Chúng ta đã tạo một cặp khóa mới trong giao diện web của AWS Management Console. Bây giờ, chúng ta cần tạo khóa công khai bằng cách sử dụng khóa riêng từ tệp .pem đã tải xuống.
Sử dụng lệnh theo định dạng này:
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
Trong trường hợp của tôi, lệnh là:
ssh-keygen -y -f ~/Downloads/blog02-temp.pem
Nếu bạn gặp lỗi, hãy thiết lập quyền truy cập chính xác:
chmod 400 ~/Downloads/blog02-temp.pem
Nếu mọi thứ đều chính xác, khóa công khai đã tạo sẽ được hiển thị trong kết quả đầu ra của bảng điều khiển.
Sao chép chuỗi khóa đã tạo và lưu thông tin này ở nơi an toàn. Trong ví dụ này, tôi lưu chuỗi khóa vào một tệp văn bản.
Sao chép chuỗi khóa vào khay nhớ tạm.
Kết nối với các instance EC2 qua SSH từ máy Linux cục bộ của bạn như đã giải thích ở phần trên trong bài viết này.
Hiện tại, chúng ta đang ở trong /home/Ubuntu/
Mở tệp cấu hình nơi lưu trữ các khóa công khai để truy cập instance EC2 qua SSH bằng trình soạn thảo văn bản: nano ~/.ssh/authorized_keys
Đường dẫn đầy đủ đến tệp cấu hình này phụ thuộc vào Hình ảnh Máy ảo Amazon (AMI) trên Linux và có thể là:
/home/ubuntu/.ssh/authorized_keys
/home/ec2-user/.ssh/authorized_keys
/root/.ssh/authorized_keys
Dán khóa của bạn từ khay nhớ tạm vào dòng thứ hai trong tệp cấu hình này.
Lưu các thay đổi và đóng tệp.
Đừng đóng cửa sổ terminal (console) đang chạy phiên SSH mà bạn đang sử dụng để kết nối với instance EC2 cho đến khi bạn chắc chắn rằng khóa thứ hai mà bạn đã thêm hoạt động bình thường. Nếu không, bạn có thể mất kết nối SSH nếu cấu hình không chính xác và không thể kết nối với các instance AWS qua SSH. Đừng để mình bị khóa ngoài trong trường hợp xảy ra lỗi!
Mở một cửa sổ terminal khác trên máy Linux cục bộ của bạn và thử kết nối với instance bằng khóa mới. Tôi chuyển đến thư mục chứa các tệp khóa của mình tại .pem .
cd ~/Downloads/
Kết nối với instance EC2 chạy Linux trên AWS từ máy Linux cục bộ của bạn trong cửa sổ terminal mới bằng cách chỉ định khóa riêng tư mới ( blog02-temp.pem trong trường hợp này).
ssh -i blog02-temp.pem ubuntu@52.55.222.44
Kết nối SSH AWS đã được thiết lập thành công bằng khóa mới. Giờ đây, bạn có thể gửi khóa mới ( blog02-temp.pem ) cho người dùng cần thiết lập kết nối SSH AWS. Khi bạn cần vô hiệu hóa quyền truy cập SSH vào máy chủ EC2 này cho người dùng, hãy xóa dòng thứ hai khỏi tệp ` .ssh/authorized_keys ` trên máy chủ Linux từ xa đang chạy trên AWS EC2. Vì cấu hình SSH của AWS với cả hai khóa (khóa đầu tiên được tạo khi bạn tạo máy chủ EC2 và khóa thứ hai bạn đã tạo trước đó để người dùng khác kết nối với AWS EC2) đều hoạt động bình thường, bạn có thể đóng các cửa sổ terminal SSH. `
` Nếu bạn xóa cặp khóa tại Network & Security > Key pairs từ Bảng điều khiển Quản lý EC2 (nơi chúng ta đã tạo khóa thứ hai trong giao diện web của Bảng điều khiển Quản lý AWS), các khóa bên trong máy chủ EC2 cụ thể đó sẽ không bị xóa.
Phải làm gì nếu bạn mất khóa SSH của AWS EC2
Nếu bạn mất khóa riêng tư dùng để kết nối với một máy chủ AWS EC2 (được tạo ra khi tạo máy chủ EC2 mới), bạn sẽ không thể kết nối với máy chủ đó nữa. Bạn không thể tạo khóa mới và chèn khóa mới vào tệp cấu hình SSH của AWS trong instance EC2 hiện tại. Trong trường hợp này, bạn có thể sử dụng một instance EC2 tạm thời mà bạn có quyền truy cập SSH. Hãy thử quy trình làm việc sau để khôi phục quyền truy cập SSH vào instance EC2 của AWS.
- Tắt máy ảo EC2 ban đầu mà bạn đã mất khóa riêng tư SSH của AWS.
- Kiểm tra thông tin về các khối lượng EBS được gắn vào máy ảo EC2. Bạn cần xác định khối lượng EBS chứa phân vùng gốc `/` được gắn vào hệ điều hành Linux. Ghi lại ID của khối lượng EBS này.
- Khởi chạy một máy ảo tạm thời trên AWS EC2. Bạn có thể sử dụng máy ảo chạy cùng bản phân phối Linux như trên máy ban đầu (AMI cùng loại).
- Tạo một cặp khóa mới để kết nối với AWS trong AWS Management Console. Lưu khóa riêng tư và chuẩn bị khóa công khai. Bạn cần tạo chuỗi khóa của khóa công khai để sửa lại cấu hình SSH của AWS được lưu trữ trên phân vùng gốc mà instance ban đầu đã sử dụng.
- Tạo một thư mục trong hệ điều hành Linux đang chạy trên máy ảo EC2 tạm thời và gắn phân vùng EBS chứa phân vùng gốc / của máy ảo EC2 gốc vào máy ảo EC2 tạm thời. Xác định phân vùng EBS cần thiết bằng ID phân vùng mà bạn đã ghi lại trước đó.
- Mở tệp cấu hình khóa SSH của AWS (tệp này thường nằm trong thư mục như /home/Ubuntu/.ssh/authorized_keys). Đường dẫn có thể thay đổi tùy thuộc vào thư mục mà bạn đã gắn phân vùng gốc của máy chủ EC2 ban đầu. Thêm chuỗi khóa công khai mới vào tệp cấu hình khóa SSH của AWS.
- Hủy gắn khối lượng EBS được sử dụng bởi máy chủ EC2 ban đầu và đang được gắn vào máy chủ EC2 tạm thời.
- Gắn lại khối lượng EBS chứa tệp cấu hình khóa SSH của AWS đã được chỉnh sửa vào máy chủ EC2 ban đầu.
- Khởi động máy chủ EC2 gốc và kết nối với máy chủ này bằng cách sử dụng cặp khóa mới qua SSH.
Sử dụng EC2 Instance Connect
Quản lý khóa là một phần quan trọng trong việc quản trị AWS vì bạn cần lưu trữ các khóa SSH của AWS EC2 dùng để truy cập các máy chủ EC2 ở nơi an toàn và tránh mất mát chúng. Việc tạo và xóa các khóa cần thiết cho quyền truy cập tạm thời của người dùng khác có thể trở thành một tác vụ định kỳ khi có số lượng người dùng lớn. Vì lý do này, Amazon cung cấp khả năng kết nối với các instance EC2 của AWS qua SSH bằng cách sử dụng EC2 Instance Connect. Tính năng này cho phép bạn tự động hóa việc quản lý khóa SSH để kết nối với các instance AWS.
Ý tưởng khi sử dụng EC2 Instance Connect là bạn tạo các chính sách Quản lý Danh tính và Quyền truy cập (IAM) để kiểm soát quyền truy cập SSH vào các instance EC2 một cách tập trung mà không cần phải quản lý (tạo, chia sẻ, xóa) các khóa SSH theo cách thủ công. Cuối cùng, người dùng có thể sử dụng ứng dụng khách SSH, ứng dụng khách dựa trên trình duyệt của bảng điều khiển AWS EC2 hoặc Amazon EC2 Instance Connect CLI để kết nối với các phiên bản AWS EC2.
API Amazon Instance Connect sẽ đẩy một khóa SSH công khai chỉ sử dụng một lần vào siêu dữ liệu của phiên bản trong vòng 60 giây. Chính sách IAM liên kết với người dùng IAM sẽ cấp quyền cho người dùng. Người dùng phải kết nối với instance EC2 bằng khóa này trong vòng 60 giây. Sau khi khóa hết hạn, phải sử dụng một khóa mới.
Amazon Instance Connect được hỗ trợ cho các instance EC2 cài đặt Ubuntu 16 (hoặc phiên bản cao hơn) và Amazon Linux 2. Amazon Instance Connect phải được cài đặt trên instance Linux EC2. Một điều kiện tiên quyết khác là phải cài đặt AWS CLI trên máy Linux từ xa đang chạy trên AWS.
Sau khi cài đặt, EC2 Instance Connect sẽ thực thi tập lệnh ghi dữ liệu vào các tham số sau trong tệp cấu hình (/etc/ssh/sshd_config) của daemon máy chủ SSH:
AuthorizedKeysCommand
AuthorizedKeysCommandUser
Cấu hình đã cập nhật AuthorizedKeysCommand được sử dụng để đọc các khóa SSH công khai của AWS EC2 từ siêu dữ liệu của máy ảo EC2. Nếu các giá trị tùy chỉnh đã được nhập sẵn cho các tham số này, Instance Connect sẽ không cập nhật (ghi đè) chúng, nhưng trong trường hợp này, bạn không thể sử dụng tính năng này.
Bạn cần tạo một tệp cấu hình ở định dạng JSON. Mở Bảng điều khiển IAM, sau đó chuyển đến mục Chính sách và nhấp vào Tạo Chính sách. Ngoài ra, bạn có thể sử dụng giao diện dòng lệnh trên máy Linux đã cài đặt AWS CLI. Ví dụ cấu hình được hiển thị bên dưới. Chính sách này có thể xác định các instance dựa trên ID instance để cho phép truy cập.
{
"Version": "2021-10-17",
"Statcodeent": [
{
"Effect": "Allow",
"Action": "ec2-instance-connect:SendSSHPublicKey",
"Resource": [
"arn:aws:ec2:region:account-id:instance/i-00000000000000000",
"arn:aws:ec2:region:account-id:instance/i-00000000000000001"
],
"Condition": {
"StringEquals": {
"ec2:osuser": "ami-username"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}
Sau đó, chính sách phải được kích hoạt. Lệnh AWS CLI để kích hoạt chính sách sẽ có dạng như sau:
aws iam create-policy --policy-name my-policy --policy-document file://JSON-file-name
Bạn có thể gán chính sách đã kích hoạt cho người dùng tương ứng.
aws iam attach-user-policy --policy-arn arn:aws:iam::account-id:policy/my-policy --user-name IAM-friendly-name
Để kết nối với instance EC2 trên Amazon Bảng điều khiển EC2, hãy chọn instance EC2 cần thiết và nhấp vào nút Connect . Trên trang Kết nối với instance , chọn EC2 Instance Connect tab và nhấp vào Connect.
Kết luận
Kết nối với các instance AWS EC2 qua SSH là một phần quan trọng trong quy trình quản trị AWS EC2. Bài viết này đã giải thích cách cấu hình SSH cho AWS EC2 và kết nối với các instance AWS EC2 chạy Linux từ các máy tính Linux và Windows cục bộ. Phải sử dụng cặp khóa để thiết lập kết nối SSH với các phiên bản EC2. Khóa công khai được lưu trữ trong cấu hình hệ điều hành Linux đang chạy trên AWS EC2, còn khóa riêng tư được sử dụng bởi trình khách SSH cục bộ được cài đặt trên máy tính của người dùng. Hãy lưu giữ các khóa ở nơi an toàn và sao lưu thường xuyên để tránh mất mát dữ liệu, thời gian và chi phí.





























