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ệ thống Linux qua SSH và thực thi các lệnh cần thiết, chỉnh sửa tệp cấu hình, v.v. Người dùng có thể đăng nhập vào hệ thống 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 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.

NAKIVO cho sao lưu AWS EC2

NAKIVO cho sao lưu AWS EC2

Sao lưu các phiên bản Amazon EC2 lên EC2, AWS S3 và tại chỗ. Các tùy chọn chống ransomware. Khôi phục nhanh các phiên bản và đối tượng ứng dụng.

Tải xuống khóa từ AWS

Khi bạn tạo một instance 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 instance 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 trữ 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 quá 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 để bạn tải xuống khóa cho instance AWS EC2 hiện tại.

Saving the key required to connect to an AWS EC2 instance to finish creating the instance

Tôi tải xuống khóa riêng và lưu khóa dưới dạng tệp blog01-key.pem .

C kết nối với instance EC2 qua SSH Sử dụng 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, đượ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.

Kết quả là, 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 được đặt trong thư mục “ C:AWS SSH ” trong ví dụ này.

How to connect to AWS instances via SSH – preparing the needed files

Mở Trình tạo khóa PuTTY (PuTTYgen) bằng cách nhấp vào tệp puttygen.exe hoặc lối tắt đến tệp này.

Nhấp vào Load trong cửa sổ PuTTYgen.

SSH Amazon EC2 key conversion in 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.

Loading a key for AWS SSH conversion and configuration

Đọc thông báo hiển thị và nhấp vào OK.

SSH Amazon EC2 key import

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 hình ảnh bên dưới.

Loại khóa cần tạo: RSA

Số bit trong khóa được tạo: 2048 bit

Nhấp vào Save private key. How to connect to an AWS instance via SSH – saving a converted key

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.

Saving a key needed for AWS SSH configuration

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.

Saving the AWS EC2 SSH key file in the ppk format

H ow Cách kết nối SSH vào EC2 Instance từ Windows

Kiểm tra địa chỉ IP công khai của instance AWS EC2 của bạn. Instance 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.

Checking the public IP address of the EC2 instance

Mở PuTTY trong Windows. Chạy putty.exe hoặc phím tắt tương ứng.

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 trong PuTTYgen trước đó.

Connect to EC2 instance SSH PuTTY

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 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.

Connecting to an AWS EC2 instance via SSH in PuTTY

Cảnh báo bảo mật được 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. Cửa sổ 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 instance EC2.

Establishing the SSH connection with a Linux instance (SSH Amazon EC2)

Nhập tên người dùng vào cửa sổ console. Vì tôi sử dụng Ubuntu Linux trên instance 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 instance này được 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 giao diện dòng 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.

Connect to EC2 instance SSH ubuntu

Chuyển tệp qua SSH sang các máy chủ Amazon EC2

Tôi đã cấu hình truy cập SSH từ xa đến 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 ngược lại. Có các giao thức truyền tệp hoạt động qua SSH để truyền tệp an toàn từ máy này sang máy khác, ví dụ: 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 instance AWS từ Windows, bạn có thể sử dụng WinSCP, đây là công cụ miễn phí 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.

How to enable transferring files via SSH to AWS EC2 instances

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.

Selecting the AWS EC2 SSH key for connecting to AWS instances in WinSCP

Nhấp vào Login trong cửa sổ chính của WinSCP.

How to transfer files via SSH to an AWS instance in WinSCP

Một thông báo cảnh báo xuất hiện giống 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.

Connecting to AWS via SSH – displaying connection details

Nếu cấu hình SSH của AWS EC2 chính xác và bạn đã thiết lập các thông số kết nối SSH trong WinSCP thành công, 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, và thư mục chính của người dùng 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 và sao chép, đổi tên hoặc xóa tệp trên máy cục bộ và máy từ xa. Transferring files via SSH to an AWS instance is working now

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 chủ EC2 của AWS 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 rằng khóa riêng tư của bạn không được 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).

SSH Amazon EC2 – connecting from Linux to a remote EC2 instance

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 đọ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 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 bạn 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.

How to connect to EC2 instance via SSH (Linux)

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 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 bạn. 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

Transferring files via SSH to the AWS instance in the Linux console

Việc chuyển tệp qua SSH đến máy chủ AWS đã hoàn tất thành công.

Transferring files via SSH to the AWS instance in the Linux console has finished

Để 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

How to copy files from an EC2 instance via SSH in Linux

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 đó. 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 vào một instance AWS

Bạn có thể tạo một cặp khóa bổ sung 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 điều 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ó.

AWS EC2 SSH connection – creating an additional key pair

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á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, 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.

Creating a new key pair to connect to AWS EC2 instances

Lưu tệp đã tải xuống vào một vị trí 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.

Saving the pem key file

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ừ tệp đã tải xuống .pem .

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 được tạo sẽ hiển thị trong kết quả đầu ra của console.

Generating a public key by using a private key for connecting via SSH into AWS instances

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 ở 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 thay đổi và đóng tệp.

AWS SSH configuration – adding a public key to a Linux machine running in AWS EC2

Đừng đóng cửa sổ console (terminal) với phiên SSH hiện tại mà bạn đang sử dụng để kết nối với instance EC2 cho đến khi bạn đảm bảo rằng khóa thứ hai mà bạn đã thêm hoạt độ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 tự khóa mình ra 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 cách sử dụng khóa mới. Tôi truy cập vào thư mục chứa các tệp khóa của mình ( .pem ).

cd ~/Downloads/

Preparing to check the SSH connection to an AWS EC2 instance with the second key pair

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 định nghĩa 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

SSH Amazon EC2 – the SSH connection with an additional key pair is established

Kết nối SSH AWS đã được thiết lập thành công với khóa mới. Bây giờ 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 instance AWS EC2 này cho người dùng, hãy xóa dòng thứ hai khỏi .ssh/authorized_keys trên instance 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 instance 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) 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 trong 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 instance EC2 cụ thể đó sẽ không bị xóa.

Cần làm gì nếu bạn mất khóa SSH AWS EC2

Nếu bạn mất khóa riêng tư để kết nối với một instance AWS EC2 (được tạo khi tạo instance EC2 mới), bạn sẽ không thể kết nối với instance đó 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 sau để khôi phục quyền truy cập SSH vào instance EC2.

  • Tắt máy chủ 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 chủ 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 khối lượng của khối lượng EBS này. Khởi chạy một máy chủ tạm thời trên AWS EC2. Bạn có thể sử dụng máy chủ chạy cùng bản phân phối Linux như đã cài đặt trên máy ban đầu (AMI cùng loại). Tạo 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 chữa cấu hình SSH của AWS được lưu trữ trên phân vùng gốc được sử dụng bởi instance ban đầu. Tạo một thư mục trên hệ điều hành Linux đang chạy trên instance EC2 tạm thời và gắn phân vùng EBS chứa phân vùng gốc / của instance EC2 gốc vào instance 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 nhận 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 sẽ thay đổi tùy thuộc vào thư mục mà bạn đã gắn phân vùng gốc của instance EC2 gốc. Thêm chuỗi khóa của khóa công khai mới vào tệp cấu hình khóa SSH của AWS. Gỡ gắn khối lượng EBS được sử dụng bởi instance EC2 gốc đang được gắn vào instance 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 đã chỉnh sửa vào instance EC2 gốc. Khởi động lại instance EC2 gốc và kết nối với instance này bằ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 của quản trị AWS vì bạn cần lưu trữ các khóa SSH của AWS EC2 để truy cập các instance 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ụ lặp đi lặp lại 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 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 của việc 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 thủ công.

&

Cuối cùng, người dùng có thể sử dụng trình khách SSH, trình 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.

Giao diện lập trình ứng dụng (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 khóa mới.

Amazon Instance Connect được hỗ trợ cho các instance EC2 cài đặt Ubuntu 16 (hoặc cao hơn) và Amazon Linux 2. Amazon Instance Connect phải được cài đặt trên instance Linux EC2. Một yêu cầu tiên quyết khác là 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 skript ghi dữ liệu vào các tham số này 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ừ metadata của instance EC2. Nếu các giá trị tùy chỉnh đã được nhập cho các tham số này, Instance Connect sẽ không cập nhật (ghi đè) chúng, nhưng bạn không thể sử dụng tính năng này trong trường hợp 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 đó đi đến Policies và nhấp vào Create Policy. Ngoài ra, bạn có thể sử dụng giao diện dòng lệnh trên máy Linux có 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 bằng 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ẽ trông giố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 vào người dùng phù hợp.

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, 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ấn Connect.

How to connect to AWS EC2 instances with EC2 Instance 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 của 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 máy ảo 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 trữ 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í.

Hãy thử NAKIVO Backup & Replication

Hãy thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp. 15 ngày miễn phí. Không có giới hạn về tính năng hay dung lượng. Không cần thẻ tín dụng.

People also read