Người dùng / máy chủ lưu trữ ở cuối tệp khóa công khai SSH có ý nghĩa gì?


73

Tôi không thể hiểu tại sao một tệp khóa công khai SSH được tạo bởi ssh-keygencó người dùng và máy chủ lưu trữ ở cuối tệp.

Ví dụ: id_rsa.pub

ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Lưu ý root@mydomainở cuối tập tin.

Nếu tôi có thể sử dụng khóa chung ở bất kỳ đâu với bất kỳ người dùng nào để xác thực bằng khóa riêng của mình, thì root @ mydomain có ý nghĩa gì đối với quá trình xác thực?

Hay nó chỉ là một người giữ chỗ để tìm ra người được ban hành bởi ai?


2
Tôi đã thấy một số biểu mẫu web quá nhiệt yêu cầu trường nhận xét bao gồm ký hiệu @, nhưng không có bất kỳ lý do kỹ thuật nào cho việc này.
gà con

Câu trả lời:


106

Trường này là một nhận xét, và có thể được thay đổi hoặc bỏ qua tùy ý. Nó được đặt thành user@hosttheo mặc định bởi ssh-keygen.


1
Ngắn gọn và đến điểm. Có thể thay đổi nhận xét tại sẽ giải quyết câu đố cho tôi. Tôi nghĩ rằng nó có một số loại vai trò trong quá trình xác thực ssh.
Basil A

2
@BasilA Tôi có một số khóa mà tôi đã xóa nó hoàn toàn.
Michael Hampton

3
Khi thiết lập đăng nhập khóa SSH vào một phiên bản trên Google Cloud Compute , GCC sử dụng trường nhận xét này để xác định tên người dùng trong trường hợp liên quan đến khóa đó.
hBy2Py

53

Điều này được giải thích ngắn gọn trong trang hướng dẫn sshd(8)trong phần về các khóa được ủy quyền:

Khóa công khai của Giao thức 2 bao gồm: tùy chọn , keytype , khóa được mã hóa base64 , comment.

Trong opensshngữ cảnh của các khóa được ủy quyền, chỉ có ý nghĩa của bình luận. Nhưng có triển khai SSH, mang lại ý nghĩa cho phần này, ví dụ như triển khai SSH trong modem LANCOM đang sử dụng nhận xét này làm tên người dùng mà khóa là hợp lệ.


6
+1 để trích dẫn người đàn ông
mgarciaisaia

17

Như những người khác đã chỉ ra, đó là một nhận xét để cho phép bạn xác định khóa nào là khóa nào.

Khi nhìn vào một khóa duy nhất, ví dụ như id_rsa.pubnó không tạo ra sự khác biệt lớn nhưng khi nhìn vào một danh sách các khóa có khả năng dài, chẳng hạn như những gì bạn có trong authorized_keystệp, sẽ rất hữu ích để có thể dễ dàng xác định khóa nào là cái nào

Ngoài ra, ssh-keygenmặc định là user@hostname, đối với các trường hợp sử dụng thông thường là một định danh rõ ràng về khóa đó là gì ( user@domainsẽ không).


5

Rất, rất đơn giản: Tôi và bạn là con người sử dụng máy. Vì vậy, nhìn vào ví dụ này bạn đã đăng:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Một máy có thể đọc điều này:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX

Một con người có thể đọc bình luận này:

root@mydomain

Mọi người có xu hướng quên rằng mặc dù những thứ có thể nhìn phức tạp trên các hệ thống máy tính, họ thực sự có thể tấn phức tạp hơn nếu mã được thiết kế chỉ để tiêu thụ máy. Tôi có nghĩa là nhìn vào mã phần mềm độc hại bị che khuất. Khi bạn giải mã nó và định dạng nó, nó có thể đọc được. Nhưng ai đó đã phải đi ra ngoài để làm cho con người khó đọc.

Theo mặc định, tất cả các loại tệp mã hóa và cấu hình trên hệ thống máy tính đều có cấu trúc để tiêu thụ cho con người bởi vì chúng tôi là con người sử dụng máy móc và máy móc không cần những thứ như:

  • Bình luận.
  • Lõm.
  • Các biến và hàm được viết bằng ngôn ngữ có thể đọc được của con người.

Vì vậy, bình luận có ý nghĩa cho bạn và tôi và không ai khác. Nó rất có thể sẽ làm việc mà không có một bình luận. Nhưng có một lần, một cái gì đó không hoạt động lúc 3:00 sáng và bạn đang tìm kiếm khóa công khai phù hợp, bạn sẽ ước / mơ / cầu nguyện bình luận ở đó.


7
"máy móc không cần những thứ như ... thụt" ho Python ho
CVn

1
@ MichaelKjorling "... trừ khi họ được tạo ra để quan tâm đến họ." :-)
hBy2Py
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.