Xuất bản id_rsa.pub để thiết lập môi trường mới dễ dàng hơn?


20

Để giúp thiết lập SSH không mật khẩu dễ dàng hơn trên các máy và môi trường mới, có lý do nào khiến id_rsa.pubtệp (chỉ là một nửa công khai của cặp khóa) không thể được xuất bản ở đâu đó trên web không? Ví dụ: trong kho lưu trữ GitHub của dotfiles.

Tôi biết rằng:

  • các id_rsatập tin (nửa riêng của cặp khóa) phải được bảo vệ cẩn thận và
  • cặp khóa cần được bảo vệ bằng cụm mật khẩu

Nhưng các tìm kiếm của tôi không đưa ra bất kỳ lời khuyên rõ ràng nào rằng điều này được cho phép hoặc khuyến khích.

Vì tò mò, liệu lời khuyên tương tự có thể giữ cho một cặp khóa mà không có cụm mật khẩu?


2
Mặc dù có thể an toàn trong trường hợp chung (giả sử khóa được tạo đúng), các lỗ hổng đã tồn tại trong quá khứ ( lỗi Debian OpenSSH nổi tiếng ) đã hạn chế nghiêm trọng không gian khóa và để lại khóa riêng dựa trên khóa chung. Vì vậy, luôn có rủi ro đó - làm thế nào để bạn biết rằng keygen SSH của bạn không gặp phải một lỗ hổng tương tự?
Bob

2
Một cơ chế cho điều này đã tồn tại: ssh-import-id
MikeyB

vậy bạn có thể chia sẻ id_rsa.pub giữa các máy không?
Federico

Câu trả lời:


26

RSA được thiết kế đặc biệt để cho phép bạn chia sẻ khóa chung đó, vì vậy, bạn có thể xuất bản nó. Điều này khá giống với cách x.509 (và SSL) với chứng chỉ RSA hoạt động.

Trước khi xuất bản các tập tin, thực sự nhìn vào nó; những thứ duy nhất cần có là từ khóa "ssh-rsa" và khóa được mã hóa base64. Bạn có thể muốn giữ nó đến đó (tôi tin rằng đây là mặc định bây giờ).

Điều này đúng cho dù khóa có cụm mật khẩu hay không. Cụm mật khẩu mã hóa khóa riêng và không ảnh hưởng đến khóa chung.

Đảm bảo, như mọi khi, khóa của bạn đủ entropic và lớn. Nếu nó được tạo ra bởi một PRNG bị hỏng, nó có thể dự đoán được. Tuy nhiên, việc xuất bản điều này không gây ra nhiều rủi ro, vì nếu không gian khóa là kẻ tấn công nhỏ có thể chỉ cần thử với tất cả các khóa trong không gian khóa được liệt kê cho đến khi chúng nhận được đúng.

Tôi khuyên bạn nên sử dụng khóa 4096 bit (chỉ định -b 4096), do đó sẽ khó khăn hơn bình thường (mặc định là 2048) để ai đó đảo ngược khóa công khai của bạn thành khóa riêng. Đó là rủi ro đáng kể duy nhất khi làm điều này và nó không phải là một rủi ro lớn vì thuật toán được thiết kế đặc biệt để làm cho nó không thực tế.


33

Nó đã là. :) Chỉ cần đặt ".keys" vào cuối URL hồ sơ Github của bạn, như vậy:

https://github.com/tjmcewan.keys


Thật thú vị. GitHub phơi bày điều này để làm gì?
richardneish

Tiện. :) Rốt cuộc, đó là một khóa công khai - nó có nghĩa là được chia sẻ. Giờ đây việc lấy khóa của cộng tác viên mới và thêm nó vào máy chủ của bạn trở nên dễ dàng hơn nhiều. Lưu email qua lại.
tjmcewan

Tôi đã không nhận ra họ đã làm điều đó.
Zeb

1
+1 cho phát hiện thú vị trên Github.
Raymond Tau

5

Mặc dù theo quy tắc, tôi không khuyên bạn nên đặt cấu hình cụ thể của riêng bạn trong kho dự án công cộng (giả sử repo dành cho tất cả mọi người và cấu hình của bạn chỉ dành cho bạn , nó chỉ hơi thô lỗ), ý nghĩa bảo mật là tối thiểu.

Vectơ tấn công hợp lý duy nhất là bằng cách nào đó sử dụng khóa công khai đó để xác định bạn trong một số bối cảnh độc hại. Những gì có thể nằm ngoài tôi, nhưng khóa chung không xác định duy nhất khóa riêng, mặc dù nó không đưa ra bất kỳ gợi ý nào về nguồn gốc của nó.

Có một vectơ tấn công trường hợp góc có thể không áp dụng, nhưng nếu bạn nhớ lại fiasco với Debian vô tình phá vỡ PRNG openssl , bất kỳ khóa ssh nào được tạo trên hệ thống bị ảnh hưởng đều có thể dự đoán được và có thể được xác định bằng khóa chung của nó. Vì vậy, trong trường hợp đó , việc xuất bản khóa công khai có thể khiến bạn gặp rắc rối. Hoặc một cách thích hợp hơn, sử dụng chìa khóa đó cho bất cứ điều gì có thể khiến bạn gặp rắc rối.


vectơ 1. làm thế nào về va chạm dấu vân tay? nó ngắn hơn nhiều so với khóa công khai; vectơ 2 bắt chước như "máy chủ oops phải được cài đặt lại, nó có một khóa khác, nhưng vui lòng đăng nhập bằng mọi cách" và xác thực thành công giả cho các khóa công khai của người dùng (nếu có thể, tôi không chắc chắn)

1

Có, bạn có thể xuất bản pubkey SSH của mình. Và bạn có thể xuất bản dấu vân tay của máy chủ bằng bản ghi SSHFP trong DNS! Điều này có thể thực sự tiện lợi, ví dụ, nếu bạn cần cập nhật / thay đổi khóa SSH của máy chủ.

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.