EC2: nhiều khóa ssh cho một ví dụ?


12

Có thể tạo nhiều hơn một khóa riêng để SSH vào một phiên bản EC2 không? Thực hành tốt nhất cho việc này là gì? Chúng tôi có nhiều người dùng cần SSH vào máy chủ và phân phối một khóa không hoạt động tốt. Điều này không cho phép chúng tôi xóa người dùng khỏi khả năng SSH vào máy chủ trừ khi chúng tôi thay đổi khóa và phân phối lại.



Khi bạn đang thực hiện quản lý khóa SSH cho một nhóm, có lẽ tốt nhất là xem xét một công cụ chuyên dụng như Userify hoặc SSH UKM (Tuyên bố miễn trừ trách nhiệm: Tôi làm việc cho Userify).
Jamieson Becker

Câu trả lời:


5

Chắc chắn rồi; bạn chỉ cần đặt tất cả các khóa công khai có liên quan vào hình ảnh và bạn sẽ đi đúng. Tôi thích sử dụng một hệ thống quản lý cấu hình để quản lý các khóa SSH; theo cách đó, nó khá tầm thường để thu hồi quyền truy cập của người dùng ngay cả trên các hệ thống đang chạy. Ngoài ra còn có nhiều hơn nữa ... giả sử "cách tưởng tượng" ... cách xử lý việc này, chẳng hạn như lưu trữ tất cả các khóa SSH của bạn trong LDAP, tập trung các khóa SSH như bất kỳ thông tin xác thực nào khác.


2
Khi bạn bắt đầu muốn lưu trữ các khóa SSH trong LDAP, đã đến lúc tìm hiểu về Kerberos.
84104

1
Tôi đã triển khai Kerberos; cá nhân, tôi nghĩ rằng đó là một giải pháp để tìm kiếm một vấn đề, và một giải pháp khá khó chịu và phiền phức ở đó.
womble

2
@Ash: Câu hỏi đi trong câu hỏi, không phải ý kiến.
womble

1
Tôi sẽ bỏ qua nhận xét trên - nhưng đối với bất kỳ ai mới vào trang web tôi cảm thấy như tôi nên nói rõ rằng nếu bạn có một nhận xét liên quan đến việc thực hiện câu trả lời, làm rõ hoặc hiểu sai, điều này cần được làm rõ trong các bình luận, để OP có thể chỉnh sửa câu trả lời để làm rõ mọi sự nhầm lẫn có thể xảy ra.
Mazatec

2
Không, bạn nên đặt câu hỏi làm rõ trong các bình luận nếu câu trả lời không giải quyết được câu hỏi ban đầu. Nếu bạn muốn hỏi một câu hỏi mới dựa trên nội dung của câu trả lời, bạn nên sử dụng nút "Hỏi câu hỏi" lớn ở góc trên cùng bên phải của trang để đặt câu hỏi mới. Đây là một trang web hỏi đáp, không phải là một diễn đàn thảo luận.
womble

6

Bạn cũng có thể sử dụng các cơ chế ssh tiêu chuẩn. Cách tiếp cận tốt nhất sẽ là nếu người dùng chạy trên máy của họ ssh-keygenđể tạo cặp khóa của họ. Sau đó, họ gửi cho bạn ~/.ssh/id_rsa.pub(hoặc id_dsa.pub, tùy thuộc vào thuật toán đã chọn) và bạn thêm nội dung của nó .ssh/authorized_keysvào máy chủ đích trong thư mục chính của tài khoản người dùng mà họ có thể truy cập. Có thể có nhiều hơn một khóa trong tệp. Một trên mỗi dòng. Và đó là tất cả! Có thể sử dụng cùng một khóa chung (id_rsa.pub) trên bất kỳ số lượng máy chủ nào - nó sẽ luôn xác định người dùng.

Bạn cũng có thể thực hiện theo cách khác - bạn chạy ssh-keygen và đăng ~ / .ssh / id_rsa (hoặc id_dsa) cho người dùng. Và người dùng lưu tệp vào ~ / .ssh / id_rsa. Chỉ cần nhớ thay đổi quyền thành 600 (-rw -------) của tệp đó, nếu không ssh sẽ không chấp nhận. Điều này rõ ràng là kém an toàn hơn, vì khóa riêng đang được phân phối qua email.

Nó cũng có thể được thực hiện trong PuTTY với PuTTYgen.


1

Một cách đơn giản hơn là như dưới đây.

Đối với người dùng Linux / Mac:

  1. Để tạo khóa Công khai và Riêng tư, hãy sử dụng lệnh sau: $ ssh-keygen -t rsa -b 4096

  2. Tải khóa công khai lên một thư mục trong nhóm S3 của bạn. Ví dụ: S3> MyBucket> Key Pair

  3. Lưu và bảo mật khóa riêng của bạn.

Đối với người dùng Windows:

  1. Sử dụng puttygen để tạo các khóa.
  2. Theo dõi DigitalOcean để tạo các khóa SSH.
  3. Tải khóa công khai lên S3> MyBucket> Khóa tuyệt vời
  4. Lưu và bảo mật khóa riêng của bạn.

Các bước sau đây rất quan trọng trong quá trình khởi chạy bất kỳ Linux AMI nào.

  1. Đảm bảo vai trò IAM có vai trò được tạo bằng chính sách AmazonS3FullAccess. Điều này cho phép cá thể đảm nhận vai trò truy cập vào các thùng S3. Điều này là cần thiết để đọc các khóa công khai từ S3 và sao chép chúng vào hồ sơ người dùng

  2. Thêm mã sau vào phần dữ liệu người dùng trong Cấu hình chi tiết sơ thẩm> Chi tiết nâng cao (dưới dạng Văn bản):

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

Thiết lập này tạo User1User2 và thêm chúng cho người dùng sudo . Lệnh aws s3 cp sao chép các khóa công khai của người dùng từ thư mục S3 sang thư mục của họ .ssh/authorized_keys path. Phần cuối cùng là chạy các lệnh như quản trị viên mà không cần mật khẩu.

Có rất nhiều cải tiến bảo mật có thể được khuyến nghị ở đây. Mặc dù không được sử dụng rõ ràng trong ví dụ này, việc giới hạn quyền truy cập nhóm S3 vào một nhóm cụ thể và biết ý nghĩa bảo mật của việc vô hiệu hóa việc sử dụng mật khẩu trong sudo, là một vài điều có thể được làm nổi bật. Sử dụng chúng một cách khôn ngoan dựa trên nhu cầu cụ thể của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.