Làm thế nào để ssh chọn đúng khóa để sử dụng?


4

Làm thế nào ssh-agent hiểu khóa nào nên sử dụng cho máy chủ từ xa nào?

Tôi đã bắt gặp nhiều câu hỏi và bài viết khác nhau liên quan đến chủ đề này, nhưng nó vẫn chưa rõ ràng với tôi.

Những gì tôi đã tìm thấy là nếu bạn muốn sử dụng các khóa ssh khác nhau, bạn cần sử dụng -i tùy chọn và chỉ định đường dẫn đến khóa cần thiết hoặc bạn có thể thiết lập các tệp Danh tính chỉ định cặp khóa nào sẽ sử dụng cho máy chủ nào.

Nhưng nó có nghĩa là theo mặc định ssh-agent chỉ có thể sử dụng một cặp khóa và nó sẽ cố gắng sử dụng nó cho tất cả các máy chủ từ xa?


Không phải các khóa được dán nhãn bởi IP / tên?
schroeder

Liên quan với câu trả lời chi tiết superuser.com/questions/268776/
dave_thompson_085

@ dave_thndry_085, cảm ơn chủ đề đó đã giúp
volk

Câu trả lời:


3

Nhưng nó có nghĩa là theo mặc định ssh-agent chỉ có thể sử dụng một cặp khóa và nó sẽ cố gắng sử dụng nó cho tất cả các máy chủ từ xa?

Theo mặc định, ssh-agent sẽ sử dụng tất cả các khóa được thêm vào nó cho tất cả các máy chủ bạn kết nối. Bạn có thể giới hạn các phím bằng cách ssh_config như trong câu trả lời khác

Các khóa có dấu vân tay, nhưng trong giai đoạn đầu xác thực khóa chung, các phần công khai chỉ được xác minh theo danh sách máy chủ và nếu chúng không khớp, xác thực sẽ bị bỏ qua (thường là xác thực khóa hoặc mật khẩu khác).


1
Để thấy điều này, hãy chạy ứng dụng khách SSH của bạn với tùy chọn -v verbose.
multithr3at3d


-2

'Phím' (không có ý định chơi chữ) dựa trên dấu vân tay như được chỉ định trong RFC4716 . Như đã giải thích trong trang man của ssh:

When connecting to a server for the first time, a fingerprint of the
server's public key is presented to the user (unless the option
StrictHostKeyChecking has been disabled).  Fingerprints can be determined
using ssh-keygen(1):

           $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

If the fingerprint is already known, it can be matched and the key can be
accepted or rejected.

Tóm lại, ASCII ở đây là dấu vân tay giải thích về khóa nào được chọn / sử dụng:

ssh-keygen yourfingerprint
you ssh --> server (stores your fingerprint)
you ssh --> millions of other servers
you ssh initial server --> server --> Have I seen this fingerprint before?

THÊM

Vì tôi nhấn enter quá sớm, dấu vân tay được lưu trữ trong:

~/.ssh/known_hosts

1
sự khởi đầu có ý nghĩa Kết thúc không trả lời câu hỏi ở bất kỳ điểm nào và chỉ là vô nghĩa.
Jakuje

1
Điều này đúng một nửa cho SSH máy chủ các khóa, nhưng hoàn toàn không liên quan đến SSH khách hàng chìa khóa, đó là chủ đề của câu hỏi này.
dave_thompson_085
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.