Trường hợp vân tay SSH Server được tạo / lưu trữ?


44

Tôi đã cài đặt openssh-server và tạo một khóa với ssh-keygen. Sau đó tôi đã thử kiểm tra nó bằng cách sử dụng chuyển tiếp cổng cục bộ bằng cách thực hiện ssh -L 8080:www.nytimes.com:80 127.0.0.1. Tuy nhiên, dấu vân tay chính mà lệnh này cung cấp không phải là dấu vân tay chính tôi nhận được khi thực hiện ssh-keygen -l. Ngay cả khi tôi xóa thư mục .ssh của mình, tôi vẫn nhận được cùng dấu vân tay, đây không phải là thư mục tôi đã tạo ssh-keygen. Có một chìa khóa khác trên hệ thống của tôi? Chìa khóa này ở đâu? Làm cách nào tôi có thể chọn khóa này để sử dụng bởi openssh-server?

Câu trả lời:


59

Khi bạn thực hiện phiên SSH, có hai cặp khóa khác nhau (có dấu vân tay cho mỗi cặp). Một là khóa của người dùng được lưu trữ trong ~/.ssh. Nhận dạng khóa SSH của người dùng đôi khi được sử dụng làm thông tin đăng nhập vào máy tính khác (nếu bạn đã thiết lập đăng nhập dựa trên khóa).

Cái còn lại là khóa của máy chủ SSH. Đây là chìa khóa bạn nhìn thấy dấu vân tay khi bạn kết nối với một máy chủ khác lần đầu tiên. Danh tính của khóa này được sử dụng để đảm bảo bạn đang đăng nhập vào máy chủ SSH mà bạn dự định. Điều này rất quan trọng nếu bạn đang sử dụng mật khẩu vì bạn sẽ không muốn vô tình thử đăng nhập vào máy tấn công: kẻ tấn công sẽ lấy được mật khẩu của bạn khi bạn nhập mật khẩu. Sau đó, kẻ tấn công có thể đăng nhập vào máy bạn nghĩ bạn đang đăng nhập đến! (cái này được gọi là "người đàn ông trong cuộc tấn công trung gian" ) Các khóa mà máy chủ SSH sử dụng để nhận dạng chính nó khi bạn đăng nhập vào nó /etc/ssh/và được đặt tên như thế ssh_host_rsa_key.

Bạn thực sự có thể thay đổi nơi máy chủ SSH tìm khóa trong tệp với cài đặt./etc/ssh/sshd_configHostKey /path/to/host/key

Theo mặc định, ssh-keygensẽ tạo một khóa cho người dùng hiện tại, theo mặc định, sẽ được lưu trữ trong ~/.ssh. Định dạng của khóa người dùng và khóa máy chủ là như nhau; sự khác biệt là nơi chúng được đặt và liệu /etc/ssh/sshd_configHostKeychỉ thị cho chúng hay không. Khi bạn cài đặt gói openssh-server, nó sẽ tự động tạo khóa cho máy chủ sử dụng. Đó là nơi mà các phím có dấu vân tay không xác định đến từ. Nếu bạn muốn xem dấu vân tay của khóa máy chủ SSH (RSA *), bạn có thể chạy ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

* Có các thuật toán mã hóa khác nhau. Mỗi người sử dụng một khóa khác nhau. Những cái phổ biến là DSA (yếu), RSA (mặc định cũ) và ECDSA (mặc định mới).


1
Kết quả của Google cho "đặt dấu vân tay ssh", mặc dù các thuật ngữ đó không chính xác về mặt kỹ thuật, nhưng thật đáng ngạc nhiên. Thật tốt khi tôi tìm thấy điều này trong số họ.
Bart van Heukelom

4
Cảm ơn vì điều đó. Một lưu ý: 'sudo' là không bắt buộc, nếu bạn trỏ ssh-keygen vào khóa chung. Đó là : ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub. Ngoài ra, đối với cài đặt của tôi, đó là khóa ECDSA chứ không phải khóa RSA mà trình nền ssh đang sử dụng, vì vậy trên thực tế những gì tôi phải chạy là ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub.
John Clements

Có vấn đề gì với việc lấy các khóa công khai từ ổ cứng cũ của tôi và sử dụng chúng trong cài đặt mới của tôi, ghi đè chúng trong / etc / ssh không? Một chìa khóa là một chìa khóa phải không?
Adam

@Adam Tôi thấy không có vấn đề gì với việc đó. Điều đó sẽ giúp tránh các sự cố khi bạn đăng nhập từ xa và khóa đã thay đổi (điều này xảy ra nếu bạn cài đặt lại một khóa mới được tạo.)
Azendale

3
Khi tôi kết nối sshvới máy chủ từ 14.04 lần đầu tiên, nó hiển thị dấu vân tay MD5. Để tạo ssh-keygen16.04 hiển thị dấu vân tay MD5, bạn phải sử dụng -E md5tùy chọn.
jarno

15

Khóa máy chủ SSH được lưu trữ trong /etc/ssh/đó bạn thường không cần phải chọn. Các khóa này được tạo khi gói máy chủ openssh được cài đặt.

Bạn có thể liệt kê dấu vân tay của các phím bằng cách ssh-keygen -l -f /etc/ssh/ssh_host_key.pubmặc dù bạn sẽ cần lặp lại điều này cho mỗi khóa chung.

 


7

ssh-keygenkhông tạo dấu vân tay SSH tại máy chủ của bạn. Điều đó được tạo bởi máy chủ SSH. ssh-keygentạo một cặp khóa công khai / riêng cho hệ thống của bạn mà sau này bạn có thể sử dụng để truy cập máy chủ SSH của mình mà không phải truyền mật mã văn bản đơn giản đến máy chủ.

Dấu vân tay của máy chủ của bạn rõ ràng sẽ không hiển thị dưới dạng dấu vân tay của cặp khóa chung / riêng mà bạn đã tạo, vì chúng tách biệt với nhau.


3
Lưu ý rằng bạn sẽ có thể tạo khóa ssh cho máy chủ của mình (trái với những gì bạn nói) nhưng bạn chỉ cần đặt chúng ở đúng nơi để chúng được sử dụng cho mục đích đó.
Azendale
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.