2012-12-09 29 views
24

Khi tôi tạo một máy chủ Amazon EC2 mới, tôi kết nối với nó bằng cách sử dụng ssh như bình thường.Xác minh vân tay SSH cho máy chủ Amazon AWS EC2 với ECDSA?

Tôi thấy cảnh báo tiêu biểu:

$ ssh myserver 
The authenticity of host 'ec2-12-34-567-890.compute-1.amazonaws.com (12.34.567.890)'  can't be established. 
ECDSA key fingerprint is 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07. 
Are you sure you want to continue connecting (yes/no)? 

Làm thế nào để xác minh dấu vân tay trước khi tôi đăng nhập? Lý tưởng nhất là một câu trả lời được dựa trên một cái gì đó bên cạnh bản ghi bàn điều khiển tạo bản gốc - vì nhật ký có thể bị xóa sau khi hệ thống khởi động lại hoặc trong tập lệnh cài đặt hệ thống lớn tạo ra nhiều đầu ra hoặc kết nối một hệ thống cũ hơn với các khóa không được theo dõi trong thời gian tạo.

+0

Một cách là sử dụng khóa của riêng bạn bằng dấu vân tay đã biết (xem: http://serverfault.com/a/581458/86472). Nếu bạn điều khiển cá thể (và lập kế hoạch cho kịch bản - ví dụ như thiết lập cá thể), việc lấy dấu vân tay khi khởi động rất dễ dàng - bạn muốn làm gì với nó (ví dụ xuất bản lên S3, Route53, Cloudwatch, gửi email cho chúng) , v.v.) Một trong những điều đơn giản nhất là có một cron job chạy mỗi giờ cập nhật một thẻ trên instance của bạn (có thể xem từ console) – cyberx86

Trả lời

24

Như câu trả lời @ joelparkerhenderson của diện, bạn có thể thu thập chủ chốt vân tay từ nhật ký bắt đầu ban đầu của máy chủ, khi host key được tạo ra (bởi cloud-init script):

enter image description here

Nếu bạn thất bại trong việc thu thập các phím theo cách này, bạn có thể lấy chúng bằng cách kết nối với cá thể đích của bạn từ một cá thể đáng tin cậy khác trong mạng Amazon riêng, do đó giữ cho bản thân bạn an toàn khỏi các cuộc tấn công man-in-the-middle.

Khi về trường hợp đáng tin cậy (một trong những bạn biết dấu vân tay cho) thiết bị đầu cuối, bạn có thể sử dụng lệnh để thu thập dấu vân tay sau (172.33.31.199 là IP riêng):

$ ssh-keyscan 172.33.31.199 > ec2key 
$ ssh-keygen -l -f ec2key 
2048 02:fc:a5:ff:97:dd:41:63:bb:88:8b:29:4e:75:23:ed 172.33.31.199 (RSA) 
256 ea:bc:4d:5f:ae:00:48:75:45:ba:97:43:fe:e1:a3:e9 172.33.31.199 (ECDSA) 

Nếu bạn không có trường hợp khác, có dấu vân tay bạn biết, tạo ra cá thể tạm thời mới, chỉ với mục đích thu thập chìa khóa. Đầu tiên tìm các khóa cho cá thể tạm thời mới, sử dụng nhật ký khởi động ban đầu của nó. Kết nối với cá thể tạm thời từ mạng công cộng. Sau đó thu thập các khóa của cá thể đích bằng cách kết nối với nó từ cá thể tạm thời, qua mạng riêng của Amazon. Sau đó bạn có thể hủy bỏ cá thể tạm thời.

Tôi đã chuẩn bị Guide for connecting to EC2 instance safely using WinSCP.

+1

Vừa sử dụng câu trả lời này (Cảm ơn!), Lần thử đầu tiên của tôi (với một cá thể t2) kết thúc không tạo ra bất kỳ thứ gì với 'ssh-keyscan'. Hóa ra rằng t2s khởi động vào một VPC và tôi đã phải sử dụng một cá thể không phải t2 để truy cập vào mạng riêng của Amazon. –

13

Dưới đây là hai giải pháp phù hợp với tôi trong quá trình tạo hệ thống EC2.

Giải pháp 1: Sử dụng bảng điều khiển Amazon EC2

  • Đến https://console.aws.amazon.com
  • Tap "EC2" liên kết.
  • Tap "Trường hợp" ở cột bên trái
  • Chạm vào tên Ví dụ bạn muốn
  • Bấm vào nút chọn "Hành động" và chọn "Get System Log" (aka "Console Output")
  • Trong giao diện điều khiển đầu ra, bạn sẽ thấy các phím được tạo

giải pháp 2: sử dụng dòng lệnh AWS EC2

bạn có thể sử dụng lệnh aws hoặc ec2-get-console-output lệnh. Cả hai đều có sẵn để tải xuống từ Amazon.

Để sử dụng EC2 tập tin của bạn private key pem, tập tin pem chứng chỉ, khu vực, và dụ:

ec2-get-console-output \ 
    --private-key pk-ABCDEF1234567890.pem \ 
    --cert cert-ABCDEF1234567890.pem \ 
    --region us-east-1c \ 
    i-e706689a 

Kết quả cho thấy ssh đăng cai dấu vân tay chủ chốt như thế này:

ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- 
ec2: 1024 e0:79:1e:ba:2e:3c:71:87:2c:f5:62:2b:0d:1b:6d:7b [email protected] (DSA) 
ec2: 256 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07 [email protected] (ECDSA) 
ec2: 2048 ce:ec:3b:d3:34:3f:f3:45:76:81:9e:76:7a:d9:f5:e8 [email protected] (RSA) 
ec2: -----END SSH HOST KEY FINGERPRINTS----- 

Công cụ aws hoạt động tương tự.

Lưu ý: các giải pháp này chỉ hoạt động trong thời gian tạo hoặc khi bạn có thể nhận nhật ký bảng điều khiển. Đối với một giải pháp rộng hơn hoạt động bất cứ lúc nào, hãy xem câu trả lời của Martin.

+1

Nhưng điều này chỉ hoạt động cho lần chạy đầu tiên của cá thể, khi nhật ký bao gồm việc tạo khóa. Khi bạn khởi động lại cá thể, bạn không thể tìm thấy dấu vân tay ở đó nữa. Bất kỳ cách nào khác? –

+1

@Martin Điểm tốt! Lý tưởng nhất là Amazon có thể thêm dấu vân tay làm cột trên bảng điều khiển EC2. Tôi sẽ thêm tiền thưởng cho câu hỏi này để khuyến khích mọi người giúp đỡ. – joelparkerhenderson

+1

Cảm ơn bạn đây là một trợ giúp to lớn. AWS là env đầu tiên của tôi thiết lập bao giờ hết, do đó, có thể nhận được tại các phím thông qua các dấu gạch ngang e2c ít khó hiểu hơn nhiều. – ouonomos

Các vấn đề liên quan