Nhiều khóa công khai cho một người dùng


55

Câu hỏi này tương tự như xác thực khóa công khai SSH - một khóa công khai có thể được sử dụng cho nhiều người dùng không? Nhưng đó là cách khác.

Tôi đang thử nghiệm sử dụng ssh để bất kỳ máy chủ ssh nào hoạt động cho câu trả lời của bạn.

Tôi có thể có nhiều liên kết khóa công khai cho cùng một người dùng không? Những lợi ích của việc làm như vậy là gì? Ngoài ra, các thư mục nhà khác nhau có thể được đặt cho các khóa khác nhau được sử dụng (tất cả các liên kết đến cùng một người dùng) không?

Xin vui lòng cho tôi biết nếu tôi không rõ ràng.

Cảm ơn.

Câu trả lời:


80

Bạn có thể có nhiều chìa khóa như bạn mong muốn. Cách tốt nhất là sử dụng các bộ khóa riêng / chung riêng cho các lĩnh vực khác nhau, như một bộ cho mục đích sử dụng cá nhân của bạn, một cho công việc của bạn, v.v.

Đầu tiên, tạo hai bàn phím riêng biệt, một cho gia đình và một cho công việc:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Tiếp theo, thêm một mục vào ~/.ssh/configtệp của bạn để chọn khóa để sử dụng dựa trên máy chủ bạn kết nối tới:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Tiếp theo, nối các nội dung của bạn id_rsa.work.pubvào ~/.ssh/authorized_keysmáy làm việc và thực hiện tương tự cho phím home trên máy chủ của bạn.

Sau đó, khi bạn kết nối với máy chủ gia đình, bạn sử dụng một trong các phím và máy chủ làm việc bạn sử dụng một máy chủ khác.

Lưu ý rằng bạn có thể muốn thêm cả hai khóa vào ssh-agentđể bạn không phải nhập cụm mật khẩu của mình mọi lúc.


Điều này sẽ hoạt động ngay cả khi id_rsa.work.pub và id_rsa.home.pub được trồng trên cùng một máy chủ phải không? Lý do là tôi có thể đang kết nối với một máy chủ từ các máy tính khác nhau, vì vậy tôi tự hỏi liệu có ý nghĩa gì khi có các khóa khác nhau cho mỗi máy tính ngay cả khi chúng kết nối với máy chủ với cùng một người dùng. Cảm ơn.
Russell

2
Chắc chắn rồi! Về phía máy chủ, ssh sẽ kiểm tra tất cả các khóa công khai trong tệp ủy quyền cho đến khi tìm thấy kết quả khớp. Vì vậy, bạn có thể đặt tất cả các khóa trong cùng một tệp ủy quyền trên máy chủ không có vấn đề.
Phil Hollenback

@PhilHollenback "ssh sẽ kiểm tra tất cả các khóa công khai trong tệp ủy quyền cho đến khi tìm thấy kết quả khớp" - bạn có nghĩa là nó tiếp tục gửi các thách thức cho khách hàng cho mỗi khóa chung cho đến khi khách hàng chứng minh được nó có thể giải mã được không? Bạn có bất kỳ tài liệu tham khảo cho điều đó? (thực sự quan tâm)
aaa90210

5

Thật có ý nghĩa khi có nhiều khóa của người dùng sẽ đến một người dùng. Lý do phổ biến là:

  • sao lưu
  • git (ví dụ Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • truy cập chung vào một ứng dụng

Theo như có các homedir khác nhau, bạn có thể thay đổi chúng theo từng khóa bằng cách trả trước environment="HOME=/home/user1"khóa của user1 trong tệp ủy quyền. Xem man authorized_keys.

Hãy dùng thử, YMMV.

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.