Tôi thấy mọi thứ trên Google về cách xem dấu vân tay khóa RSA, nhưng không phải là dấu vân tay ECDSA.Tôi sử dụng lệnh nào để xem dấu vân tay khóa ECDSA của máy chủ của tôi là gì?
Trả lời
Chờ đã, tôi đã tìm thấy. Chạy lệnh:
ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
Với ssh gần đây (OpenSSH_6.0p1, OpenSSL 1.0.0j 10 Tháng Năm 2012), tôi viết kịch bản nó như thế này:
ssh-keyscan -t ecdsa localhost 2>&1 | grep ecdsa
localhost ecdsa-sha2-nistp256 AAAAE2VlongKey...=
Ghi chú:
- nếu sshd của bạn chạy trên một cổng tùy chỉnh, hãy thêm '
-p portNumber
' vào lệnhssh-keyscan
) ssh-keyscan
viết trênstderr
, khôngstdout
(!), vì thế mà chuyển hướngbash
'2>&1
' (có thể thay đổi tùy theo shell của bạn)
Đó là dòng tôi thêm vào tập tin ~/.ssh/known_hosts
của tôi để cho phép các yêu cầu ssh từ localhost cho thử nghiệm của tôi (chủ yếu cho gitolite, which uses ssh).
Daniel Böhmer khẳng in the comments:
ssh-keyscan
cung cấp các khóa công khai đầy đủ (s) của máy chủ SSH- đầu ra của
ssh-keygen
gần giống với định dạng của các tập tin khóa công khai .
Chỉ cần loại bỏ cột thứ nhất (địa chỉ IP hoặc tên máy chủ) và lưu nó hoặc ống nó vàossh-keygen -l
trình bày dấu vân tay.
câu hỏi là về dấu vân tay * của khóa. ssh-keyscan chỉ cung cấp khóa (công khai). – aleb
Thật vậy, 'ssh-keyscan' cung cấp toàn bộ khóa công khai của máy chủ SSH. Tôi có một kết xuất của nó và bây giờ muốn so sánh với dấu vân tay được hiển thị bởi 'ssh' trong lần kết nối đầu tiên. Làm thế nào để làm điều đó? –
Tôi vừa phát hiện ra: đầu ra của 'ssh-keygen' gần giống với định dạng của các tệp khóa công khai. Chỉ cần loại bỏ cột thứ nhất (địa chỉ IP hoặc tên máy chủ) và lưu nó hoặc đặt nó vào 'ssh-keygen -l' trình bày dấu vân tay. Tôi vẫn muốn biết làm thế nào để làm cho 'ssh' hiển thị toàn bộ khóa công khai của máy chủ khi yêu cầu xác nhận nó. –
Trên hệ thống của tôi, tôi cần phải xác định một chìa khóa MD5 thay cho SHA256 mặc định:
ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub
đầu ra này một chuỗi trong một định dạng mà xuất hiện lỗi tôi thấy trên máy khách.
Cờ '-E' được giới thiệu trong OpenSSH> 6.6, khoảng thời gian khi chuyển sang dấu vân tay SHA256 theo mặc định.Vì vậy, trong trường hợp máy khách hiển thị dấu vân tay SHA256, nó không thể được sử dụng để xuất ra định dạng đó trên máy chủ. Một cách xung quanh đó: https://superuser.com/a/1030779 – tanius
Lưu ý rằng điều này sẽ tính toán giá trị băm của vân tay ở định dạng ưa thích của os máy chủ của bạn. Tùy thuộc vào hệ điều hành cục bộ của bạn, bạn có thể cần sử dụng định dạng băm cũ: ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub Điều này là cần thiết, ví dụ khi kết nối từ ubuntu 12.04 đến ubuntu 16.04 – Jeff