hai máy trong hình cho vấn đề của tôi:
- Máy chủ: Chạy Ubuntu Server 20.04.3 LTS, chạy máy chủ ssh
- Máy khách: Chạy Ubuntu Desktop 20.04.3 LTS, chạy máy khách ssh
Tôi hy vọng cặp khóa ED25519 đã tạo của tôi sẽ được sử dụng. Các phím được lưu trữ như sau:
- id_ed25519.pub: được đính kèm trong ~/.ssh/authorized_keys trên "máy chủ"
- id_ed25519: được lưu trữ trong ~/.ssh trên "máy khách"
Cấu hình trên máy chủ trong /etc/ssh/sshd.config:
- PubkeyAuthentication có
- AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
- Mật khẩu Xác thực không
Cấu hình trên máy khách:
- id_ed25519 được cung cấp qua móc khóa
(thực hiện ssh-add cho ssh-agent, yêu cầu đúng cụm mật khẩu)
Bây giờ điều gì khiến tôi đau đầu:
Bước 1: Tôi kết nối từ máy khách đến máy chủ. Khi tôi truy cập lần đầu tiên (trống ~/.ssh/known_hosts trên máy khách), tôi nhận được:
Dấu vân tay khóa ECDSA là SHA256: [DefaultKeyFingerprint]. Bạn có chắc chắn muốn tiếp tục kết nối?
[DefaultKeyFingerprint] là trình giữ chỗ cho dấu vân tay được hiển thị. Hóa ra đó không phải là dấu vân tay mà tôi mong đợi. Kỳ vọng của tôi là: id_ed25519.pub được máy chủ sử dụng để lấy dấu vân tay. Điều này sẽ dẫn đến một dấu vân tay khác (được kiểm tra qua "ssh-keygen -l -f"). Hãy gọi cái này là [Dấu vân tay dự kiến].
Tôi đã cố gắng hiểu [DefaultKeyFingerprint] đến từ đâu. Kết quả:
Nó phù hợp với khóa mặc định ssh_host_ecdsa_key.pub được tạo bởi sshd trong /etc/ssh/
Bước 2: Sau khi chấp nhận cảnh báo được đề cập ở trên, tôi có thể kết nối thành công.
Tôi muốn biết liệu khóa chung đằng sau [DefaultKeyFingerprint] hay [ExpectedFingerprint] đã được sử dụng hay chưa. Hai dấu hiệu cho thấy [Dấu vân tay dự kiến] đã được sử dụng:
- Chỉ định khóa riêng phía sau [DefaultKeyFingerprint] khi thực thi "ssh" trên máy khách không được "Máy chủ" chấp nhận, ngay cả khi tệp khóa riêng được chỉ định bằng tùy chọn -i. Lỗi là:
Quyền bị từ chối (khóa công khai).
Điều này phù hợp với mong đợi của tôi vì tôi đã cho phép ở phía máy chủ trong ~/.ssh/authorized_keys chỉ khóa công khai phù hợp với [Dấu vân tay dự kiến]
- Khi tôi chạy trên "Máy chủ":
trạng thái systemctl ssh
sau khi đăng nhập thành công, tôi nhận được đầu ra sau:
Dez 22 10:57:42 [my_machine] sshd[3255]: Khóa được chấp nhận ED25519 SHA256:[Dấu vân tay dự kiến] được tìm thấy tại ~/.ssh/authorized_keys:1
Dez 22 10:57:42 [my_machine] sshd[3255]: Khóa công khai được chấp nhận cho [người dùng] từ 192.168.178.35 cổng 50048 ssh2: ED25519 SHA256:[Dấu vân tay dự kiến]
Dez 22 10:57:42 [my_machine] sshd[3255]: pam_unix(sshd:session): phiên mở cho người dùng [người dùng] bởi (uid=0)
Những câu hỏi của tôi:
- Bạn có thể xác nhận lập luận của tôi ở trên rằng [Dấu vân tay dự kiến] thực sự đã được sử dụng không?
- Tại sao "Máy chủ" hiển thị dưới dạng dấu vân tay [DefaultKeyFingerprint] chứ không phải [Dấu vân tay dự kiến] và làm cách nào để "Máy chủ" hiển thị [Dấu vân tay mong đợi]?
Nhận xét - không biết nếu nó quan trọng:
Khi tôi tạo cặp khóa dẫn đến [Dấu vân tay dự kiến], tôi đã chỉ định một dấu hoa thị trong tên miền *.mydomain.com. Đầu ra của ssh-keygen -l -f cho cả hai khóa chung:
256 SHA256:[Dấu vân tay dự kiến] *.mydomain.com (ED25519)
256 SHA256:[DefaultKeyFingerprint] root@mymachine (ECDSA)
Cảm ơn trước cho những suy nghĩ của bạn.