Tôi vừa đăng ký cung cấp dịch vụ Bean Beanalk mới của Amazon. Những gì tôi không thể tìm ra là làm thế nào để SSH vào một ví dụ Beanstalk. Tôi không có khóa riêng vì Beanstalk đã tạo ra ví dụ thay cho tôi.
eb ssh
Tôi vừa đăng ký cung cấp dịch vụ Bean Beanalk mới của Amazon. Những gì tôi không thể tìm ra là làm thế nào để SSH vào một ví dụ Beanstalk. Tôi không có khóa riêng vì Beanstalk đã tạo ra ví dụ thay cho tôi.
eb ssh
Câu trả lời:
Tôi thấy đó là một quá trình gồm 2 bước. Điều này giả định rằng bạn đã thiết lập một cặp khóa để truy cập các thể hiện EC2 trong khu vực có liên quan.
elasticbeanstalk-default
nhóm bảo mật nếu bạn đã khởi chạy một thể hiện của Bean Beanalk trong khu vực đó.Chỉnh sửa nhóm bảo mật để thêm quy tắc truy cập SSH. Dưới đây sẽ khóa nó xuống chỉ cho phép xâm nhập từ một địa chỉ IP cụ thể.
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
trường. Khi cá thể đã khởi chạy lại, bạn cần lấy tên máy chủ từ tab phiên bản AWS Console EC2 hoặc thông qua API. Sau đó bạn có thể ssh lên máy chủ.
$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
Lưu ý: Để thêm một cặp khóa vào cấu hình môi trường, bảo vệ chấm dứt của các phiên bản phải được tắt vì Beanstalk sẽ cố gắng chấm dứt các phiên bản hiện tại và bắt đầu các phiên bản mới với KeyPair.
Lưu ý: Nếu một cái gì đó không hoạt động, hãy kiểm tra tab "Sự kiện" trong ứng dụng / môi trường Beanstalk và tìm hiểu những gì đã sai.
Beanstalk đàn hồi CLI v3 hiện hỗ trợ SSH trực tiếp bằng lệnh eb ssh
. Ví dụ
eb ssh your-environment-name
Không cần tất cả các rắc rối khi thiết lập các nhóm bảo mật tìm ra địa chỉ cá thể EC2.
Ngoài ra còn có mẹo hay này:
eb ssh --force
Điều đó sẽ tạm thời buộc cổng 22 mở thành 0.0.0.0 và giữ cho cổng mở cho đến khi bạn exit
. Điều này pha trộn một chút lợi ích của câu trả lời hàng đầu, mà không gặp rắc rối. Bạn có thể tạm thời cấp cho người khác ngoài bạn truy cập để gỡ lỗi và không có gì. Tất nhiên, bạn vẫn sẽ cần phải tải khóa công khai của mình lên máy chủ để họ có quyền truy cập. Khi bạn làm điều đó (và miễn là bạn ở trong eb ssh
), người khác có thể
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
. Bạn cũng có thể thiết lập một môi trường cụ thể với tùy chọn thiết lập:eb ssh production --setup
Trải nghiệm của tôi vào tháng 8 năm 2013 với máy khách linux và cài đặt AWS Beanstalk đơn giản (ví dụ EC2 đơn) như sau (dựa trên Community Wiki ở trên)
awsweb...
nhóm bảo mật và các chi tiết sẽ hiển thị ở dưới cùng của trangChúc may mắn
Tôi đã được chơi với điều này là tốt.
Dịch vụ sẽ được khởi chạy lại, hãy pha cà phê trong 5 phút
Trên tab ec2 của bạn cho cùng một khu vực, bạn sẽ thấy phiên bản mới đang chạy của mình. ssh với tên dns công khai là người dùng ec2 bằng cách sử dụng khóa được thêm vào trong 3 ví dụ: ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com
Câu trả lời trên là hơi cũ.
Đầu tiên, tạo một cặp khóa và sau đó gắn nó vào môi trường của Bean Beanalk.
Các bước để tạo một cặp khóa
Các bước để gắn cặp khóa đã tạo vào môi trường Bean Beanalk
AWS -> Dịch vụ -> Bean Beanalk
Chọn môi trường của bạn và nhấp vào cấu hình bên trái.
Trong Tổng quan cấu hình, chọn sửa đổi từ Bảo mật.
Trong quyền máy ảo, chọn cặp khóa mà chúng tôi đã tạo.
Bấm vào lưu và sau đó vào lưu cấu hình.
Điều này sẽ mất một thời gian để phản ánh với thể hiện EC2 của bạn.
Nếu bạn đang sử dụng bean co giãn và EB CLI, chỉ cần sử dụng eb ssh
để đăng nhập vào ví dụ. Bạn có thể sử dụng các tùy chọn như được chỉ định trong liên kết sau
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
Bạn cần kết nối trực tiếp với thể hiện ec2 bằng địa chỉ IP công khai của nó. Bạn không thể kết nối bằng cách sử dụng url đàn hồi.
Bạn có thể tìm thấy địa chỉ IP cá thể bằng cách tìm kiếm nó trong bảng điều khiển ec2.
Bạn cũng cần đảm bảo cổng 22 được mở. Theo mặc định, EB CLI đóng cổng 22 sau khi kết nối ssh hoàn tất. Bạn có thể gọi eb ssh -o để giữ cổng mở sau khi phiên ssh hoàn tất.
Cảnh báo: Bạn nên biết rằng cây đậu co giãn có thể thay thế cá thể của bạn bất cứ lúc nào. Nhà nước không được đảm bảo trên bất kỳ trường hợp đậu bắp đàn hồi của bạn. Có lẽ tốt hơn là chỉ sử dụng ssh cho mục đích thử nghiệm và gỡ lỗi, vì mọi thứ bạn sửa đổi có thể biến mất bất cứ lúc nào.
Hướng để đặt cặp khóa cho phiên bản ElasticBeanstalk ec2 với giao diện người dùng hiện tại là: Cảnh báo: Điều này sẽ yêu cầu cập nhật các phiên bản EC2 trong Ứng dụng ElasticBeanstalk của bạn. Lưu ý: Bạn sẽ cần phải tạo một cặp khóa trong bảng điều khiển EC2 trước đó.
1) Trong Bảng điều khiển AWS, Chọn dịch vụ ElasticBeanstalk 2) Chọn Ứng dụng bạn muốn sử dụng. 3) Chọn 'Cấu hình' 4) Chọn biểu tượng bánh răng (cài đặt) trên hộp cấu hình 'Trường hợp'. 5) Điều này sẽ đưa bạn đến một trang có tiêu đề 'Máy chủ', nơi bạn có thể cập nhật trường thả xuống 'Cặp khóa EC2' với cặp khóa mong muốn của bạn và chọn 'Lưu'.
Một điều cần lưu ý là điều này có thể không hoạt động đối với các Ứng dụng có nhiều phiên bản (nhưng tôi tin rằng có khả năng nếu tất cả chúng đều nằm trong cùng một khu vực với cặp khóa).
Tôi đến đây để tìm cách thêm khóa vào một thể hiện mà Beanstalk tạo ra trong quá trình cung cấp (chúng tôi đang sử dụng Terraform). Bạn có thể làm như sau trong Terraform:
resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
...
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = "${aws_key_pair.your-ssh-key.key_name}"
}
...
}
Sau đó, bạn có thể sử dụng khóa đó để SSH vào hộp.
Nếu bạn đã thiết lập CLI sử dụng eb init
cho môi trường của mình thì nó sẽ đơn giản như
eb ssh --setup
sẽ cho phép bạn tạo một cặp khóa mới hoặc sử dụng một cặp hiện có nếu tồn tại.
Bạn cũng có thể chỉ cần kết nối với môi trường hiện tại eb use
mặc dù tôi chưa làm điều đó.
Để biết chi tiết về cách cài đặt CLI - https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
Tùy thuộc vào cấu hình môi trường của bạn, bạn có thể không có địa chỉ IP công khai trên phiên bản EC2 được tạo cho môi trường của bạn. Bạn có thể kiểm tra bằng cách:
Cuối cùng, chọn EIP mới của bạn và chọn Địa chỉ liên kết từ menu hành động. Liên kết IP đó với thể hiện EC2 của bạn. Bạn sẽ có thể kết nối bằng cách sử dụng eb ssh
ngay bây giờ.
Bạn có thể thiết lập lại các chi tiết kết nối bằng cách chạy eb ssh --setup
.
Tôi cũng gặp vấn đề tương tự một lúc trước. Tôi muốn sử dụng tệp chính, nhưng Amazon nói ở đâu đó rằng bạn không thể thêm tệp chính vào máy chủ EC2 hiện có. Đối với ứng dụng Beanstalk đầu tiên, Amazon định cấu hình ứng dụng cho bạn. Bạn cần tạo một ứng dụng mới và bạn có thể định cấu hình máy chủ EC2 chạy ứng dụng Beanstalk để sử dụng tệp pem cũ (ppk nếu sử dụng Putty) hoặc bạn có thể tạo một ứng dụng mới. Bây giờ bạn sẽ có thể SSH.
Sau đó cấu hình, sau đó xóa ứng dụng cũ của bạn.