Tôi có cần phải có cụm mật khẩu cho khóa SSH RSA không?


71

Trước khi tôi bắt đầu với công việc hiện tại (tại một doanh nghiệp nhỏ), văn phòng của tôi không có tường lửa trên mạng và thực sự không có gì được sao lưu. Bây giờ tôi đã đăng nhập với tư cách là một bộ phận sysadmin / một người-IT chuyên dụng, tôi đã làm những gì có thể để thay đổi điều này. Sau khi giải thích với sếp của chúng tôi về việc chúng tôi dễ bị tổn thương như thế nào, anh ấy cho phép tôi thiết lập một số máy chủ dự phòng, một trong số đó là ở nhà anh ấy.

Ngay bây giờ, tôi đang cố gắng thiết lập mọi thứ để tôi có thể tự động hóa các bản sao lưu hàng ngày. Tôi đang dự định sử dụng rsync thông qua ssh để làm điều này. Để bảo mật cũng như để dễ tự động hóa, tôi đã lên kế hoạch vô hiệu hóa đăng nhập mật khẩu ssh và chỉ sử dụng xác thực khóa rsa. Chà, nếu tôi có một cụm mật khẩu rsa, thì tôi vẫn sẽ phải nhập mật khẩu và đó là một vấn đề.

Không có cụm mật khẩu rsa có khiến mọi thứ kém an toàn hơn không? Tôi là người duy nhất trong công ty có bất kỳ manh mối nào về vấn đề này, vì vậy tôi không quá lo lắng về việc ai đó gọi một thiết bị đầu cuối trên máy của mình (dù sao tôi luôn bị khóa khi tôi AFK ) và ssh-ing vào một trong các máy chủ dự phòng và gây ra bất kỳ thiệt hại nào. Tôi vẫn còn rất mới đối với thế giới quản trị hệ thống và đây là lần đầu tiên tôi làm bất cứ điều gì như thế này và tôi không muốn để lại bất kỳ lỗ hổng nào trong thiết lập bảo mật.

Các máy tính được đề cập ở đây đang chạy Ubuntu 10.10, Máy chủ SME và OSX 10.6, nếu điều đó bằng cách nào đó tạo ra bất kỳ sự khác biệt nào.


5
Thực sự không nên có bất kỳ tổn thất nào về bảo mật bằng cách không có cụm mật khẩu trên khóa của bạn. Việc duy trì tính toàn vẹn bảo mật của khóa tại thời điểm này trở nên không thể thiếu vì nếu ai đó có thể sao chép nó, không có khóa bí mật nào ngăn họ sử dụng nó.
Chris Marisic

1
Có lẽ đó chỉ là tôi, nhưng tôi không biết bình luận trên đang cố nói gì.
gạch dưới

3
@underscore_d Về cơ bản, ông nói: Không ảnh hưởng đến bảo mật SSH có hoặc không có cụm mật khẩu cho các khóa của bạn NHƯNG bạn phải giữ các khóa của mình an toàn cục bộ.
Người đánh bóng

Câu trả lời:


89

Như bạn đã biết, lợi thế mà cụm mật khẩu mang lại cho bạn là nếu ai đó có thể đọc khóa riêng của bạn, họ sẽ 'không thể' sử dụng nó.

Nếu ai đó có thể truy cập khóa riêng đó, bạn nên chấp nhận rằng họ có quyền truy cập (ed) / bị xâm phạm bất cứ máy nào được thiết lập với khóa chung. Những thứ như .bash_history hoặc .ssh / config chỉ làm cho việc này dễ dàng hơn, ngay cả khi .ssh / know_host của bạn bị xáo trộn.

Không có mật khẩu trên khóa của bạn không phải là kết thúc của thế giới, đây là 3 ý tưởng để thử và giúp bạn bảo vệ bản thân tốt hơn một chút mặc dù điều này. ( Biggie là thứ hai, đọc rằng nếu không có gì khác )


  1. Không chỉ sử dụng cùng một khóa trên tất cả các máy và người dùng. Tạo mỗi người dùng trên mỗi máy (cần thực hiện loại điều này) cặp khóa riêng của nó. Điều này sẽ cho phép bạn giữ quyền kiểm soát chi tiết tốt về những gì có thể ssh ở đâu.

  2. Khi thêm khóa vào tệp ủy quyền của bạn, bạn có thể khóa nó để chỉ có thể chạy một lệnh cụ thể hoặc chỉ sử dụng nó từ một máy chủ cụ thể.

    Xem man sshvà tìm kiếm lệnh =từ =

    Cú pháp giống như:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    tức là bật 'rsync' trong đó và chỉ có thể gọi 'rsync' bằng khóa của bạn và chỉ từ địa chỉ IP 1.2.3.4. Nhiều IP có thể được phân tách bằng ,. Tên máy chủ cũng được hỗ trợ.

  3. Một điều khác nảy sinh trong tâm trí là chỉ thị 'AllowUser' trong sshd_config của bạn

    Người cho phép

    Từ khóa này có thể được theo sau bởi một danh sách các mẫu tên người dùng, được phân tách bằng dấu cách. Nếu được chỉ định, đăng nhập chỉ được phép cho tên người dùng khớp với một trong các mẫu. '*' và '?' có thể được sử dụng như ký tự đại diện trong các mẫu. Chỉ tên người dùng là hợp lệ; ID người dùng số không được công nhận. Theo mặc định, đăng nhập được phép cho tất cả người dùng. Nếu mẫu có dạng USER @ HOST thì USER và HOST được kiểm tra riêng, hạn chế đăng nhập cho người dùng cụ thể từ các máy chủ cụ thể.

    Điều đó về cơ bản đảm bảo rằng người dùng chỉ có thể đăng nhập từ một vị trí nhất định. (mặc dù nó cũng chấp nhận ký tự đại diện) Sẽ không giải quyết tất cả các vấn đề của bạn nhưng ít nhất nó sẽ gây khó khăn hơn cho những người khác.


1
Đẹp - đây chính xác là những gì tôi cần biết. Cảm ơn bạn rất nhiều!
eckza

3
Không có vấn đề gì, đừng coi đó là một danh sách đầy đủ! :-) Những điều như thường xuyên xem xét auth.log / safe, v.v.
Giá cả

3
Vì vậy, kiểm toán thay vì lo lắng về mật khẩu của bạn bị đánh cắp?
Ehtesh Choudhury

3
@shurane Làm cả hai!
Giá cả

4

Bạn có thể sử dụng một cái gì đó như móc khóa để làm cho một cụm mật khẩu bớt đau đớn. Điều này an toàn hơn một chút so với sử dụng đăng nhập không mật khẩu và có thể được sử dụng kết hợp với các câu trả lời khác tại đây. Câu trả lời của PriceChild là khá tốt.


-4

Cá nhân tôi sử dụng DSA chứ không phải RSA, chủ yếu vì đó là thứ tôi luôn sử dụng và tôi biết nó 'chỉ hoạt động', nhưng lý thuyết tôi đoán là như vậy. Bạn có thể thay thế dsabằng rsatrong dưới đây.

Trên nguồn:

$ ssh-keygen -t dsa

Sau đó sao chép nội dung của .ssh/id_dsa.pubtệp vào .ssh/authorized_keystài khoản người dùng ở đích.

Sau đó, bạn chỉ có thể ssh giữa nguồn và đích mà không có mật khẩu.


1
Có bất kỳ lý do bạn ủng hộ dsa hơn rsa? Tôi thường thấy ngược lại đề nghị.
Giá cả

@PriceChild: AFAIK, bảo mật của họ tương đương ít nhiều (giả sử kích thước khóa đủ). Bản thân tôi không phải là một nhà mật mã học, tôi tin tưởng vào quyết định của OpenSSH và GnuPG sử dụng RSA làm thuật toán khóa mặc định. Xem thêm câu hỏi này .
grawity

Không có lý do thực sự - chủ yếu là lựa chọn cá nhân - và thực tế là RSA đã bị hack mã gần đây và mã nhạy cảm bị đánh cắp - làm thế nào liên quan đến khóa RSA tôi không biết (ai làm?) Nhưng tôi luôn luôn sử dụng DSA vì nó có vẻ an toàn hơn .
Majenko

9
Tôi sợ việc hack "công ty RSA" không ảnh hưởng đến bảo mật của "thuật toán RSA". Ngoài ra kiểm tra secure.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA đã được đặt tên theo công thuật toán mật mã khóa RSA, đó là lần lượt được đặt tên theo tên viết tắt của nó đồng minh: Ron Rivest, Adi Shamir, và Len Adeld. "
Giá cả

6
@Matt: Điểm chung duy nhất họ có là tên. Thuật toán mật mã bất đối xứng RSA là toán học thuần túy, không có cách nào nó có thể bị suy yếu khi đột nhập vào một số hệ thống của công ty.
grawity
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.