Xác thực khóa SSH với nhiều máy tính


21

Tôi đã đọc về xác thực khóa SSH và thiết lập nó với 3 máy tính của tôi ở nhà.

Tôi có một máy tính chính, gọi nó là "A" và hai máy tính khác, gọi chúng là "B" và "C".

Bây giờ dựa trên tài liệu tôi đã đọc, tôi sẽ chạy ssh-keygen trên B và C và đặt các khóa công khai trên máy tính A giả sử tôi sẽ luôn SSH vào máy tính A, nếu tôi ở trên B hoặc C.

Nhưng, tôi nghĩ rằng các ví dụ tài liệu tôi đã đọc giả sử chỉ có 1 máy tính gia đình sẽ được sử dụng với cho phép nói một số máy tính bên ngoài khác. Trong tình huống của tôi, có nghĩa là chỉ chạy ssh-keygen trên một máy tính và sao chép các tệp sang các máy tính khác? Cách này tôi chỉ cần sao lưu một bộ chìa khóa? Và khi tôi đăng nhập vào một máy tính bên ngoài, tôi chỉ phải thiết lập nó với 1 bộ khóa cũng như trái ngược với việc thiết lập nó với cả ba máy tính.

Điều này có nghĩa không? Bất kỳ sai sót hoặc lưu ý cảnh báo để xem xét?

Cảm ơn.

Câu trả lời:


29

Về mặt lý thuyết bạn có thể làm cả hai cách, nhưng mỗi cách đều có ưu điểm và nhược điểm:

Bạn thực sự chỉ có thể tạo 1 khóa, nói đó là "của bạn" (với tư cách là một người), bảo mật nó ở đâu đó và sao chép nó vào bất kỳ máy tính nào bạn sử dụng. Ưu điểm là bạn có thể kết nối với A từ bất cứ nơi nào bạn đến, miễn là bạn sở hữu khóa riêng SSH. Hạn chế là miễn là bạn sao chép khóa riêng của mình từ nơi này sang nơi khác, dù bằng cách nào, bạn sẽ tăng nguy cơ bị ai đó đọc lén kết nối. Tệ hơn, nếu máy tính C bị đánh cắp, bạn phải tạo lại một khóa mới trên tất cả các máy tính sử dụng khóa này và phân phối một khóa mới.

Mặt khác, sử dụng 1 phím cho mỗi người dùng @ máy tính có lợi thế là "kiểm soát tốt" hơn "những gì" có thể kết nối "ở đâu". Đó là cách phổ biến nhất để làm.

Ví dụ, nếu bạn đưa máy tính C cho anh / chị / vợ / chồng / bạn / chó của bạn hoặc cho một tên trộm (không có sự chấp thuận của bạn), bạn sẽ chỉ cần xóa khóa khỏi A '' ủy quyền_key '' tập tin.

Vì vậy, ngay cả khi nó có nghĩa là "nhiều khóa hơn trong ủy quyền", tôi đề nghị cách tiếp cận thứ hai.


Bạn không thể giải mã luồng ssh bằng khóa riêng của khách hàng và tùy thuộc vào cài đặt máy chủ, bạn cũng không thể giải mã nó bằng khóa riêng của máy chủ. zurlinux.com/?p=1772
Dan Merillat

Điều đó đúng, và đó không phải là ý tôi. Ý tôi là nếu khóa riêng của bạn bị đánh cắp, người ta có thể sử dụng nó để kết nối với máy tính A từ bất kỳ nơi nào khác. Điều này có thể được giảm thiểu bằng cách thêm TỪ = "<IP>" ở đầu dòng ủy quyền. (xem trang ssh man)
mveroone

Sau khi sao chép nó, tôi đã phải chèn mật khẩu của mình để sử dụng nó trên máy tính khác của mình, tôi đoán đó là một số bảo mật ít nhất :)
OZZIE

3

Sử dụng cùng một khóa trên cả ba máy tính là hoàn toàn có thể thực hiện được - tôi làm điều đó mọi lúc, chủ yếu là để thuận tiện.

Kwaio chỉ ra một cách chính xác rằng điều này làm tăng nguy cơ khóa của bạn bị xâm phạm. Một giải pháp khả thi là tách các thành phần khóa riêng và khóa chung. Vì thế:

  • Tất cả các máy tính đều có khóa công khai của bạn trong tệp ủy quyền.
  • Bạn giữ 2 bản sao khóa riêng của bạn; một cái nằm trong thanh USB quanh cổ bạn (để sử dụng khi sử dụng ssh để truy cập vào một máy tính khác) và cái còn lại nằm trong thanh USB ở nơi an toàn (chỉ trong trường hợp bạn bị mất bản sao đầu tiên).

Nếu một trong các máy tính của bạn bị đánh cắp hoặc khóa công khai của bạn bị xâm phạm - thì đó chỉ là một khóa công khai, vậy thì sao.

Nếu khóa riêng của bạn bị đánh cắp hoặc bị mất, bạn lập tức thiết lập về việc tạo một cặp khóa mới và cập nhật các khóa chung trên tất cả các máy tính của bạn.

HTH.


2
Ok, nhưng HTH là gì?
mikeerv

3
HTH = Hy vọng rằng sẽ giúp.
PHƯỜNG ALAN

1
Sẽ là khôn ngoan khi chỉ ra rằng nếu bạn đặt khóa riêng của mình vào ổ flash, sẽ là khôn ngoan nếu biến nó thành khóa riêng được bảo vệ bằng mật khẩu. Việc không cần phải nhập cụm mật khẩu mỗi lần có thể được giảm thiểu bằng cách sử dụng một tác nhân (pagent trên windows, ssh-agent trên linux)
mveroone
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.