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_config
HostKey /path/to/host/key
Theo mặc định, ssh-keygen
sẽ 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_config
có HostKey
chỉ 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).