Có cách nào dễ dàng để cập nhật thông tin trong know_hosts khi bạn biết rằng khóa máy chủ đã thay đổi không?


38

Nếu hệ điều hành của máy chủ đã được cài đặt lại và khóa công khai được khôi phục thì nó sẽ bị lỗi vì khóa mới không khớp với khóa cũ.

Có cách nào dễ dàng hơn để nói với ssh rằng bạn biết rằng khóa của máy chủ đã thay đổi và bạn muốn nó được cập nhật. Tôi nghĩ rằng nó cảm thấy một chút lỗi dễ sử dụng một trình soạn thảo văn bản hoặc một cái gì đó như sed để loại bỏ các dòng vi phạm.


Điều này trùng lặp một câu hỏi về superuser . Xem thông tin chi tiết hơn ở đó.
Yitz

Câu trả lời:


59

Sử dụng ssh-keygen -R hostnameđể xóa tên máy chủ khỏi tệp know_hosts của bạn. Lần sau khi bạn kết nối, khóa máy chủ mới sẽ được thêm vào tệp know_hosts của bạn.


12
TARGET_HOST=[hostname or IP]

# Remove the old key(s) from known_hosts
ssh-keygen -R $TARGET_HOST

# Add the new key(s) to known_hosts (and also hash the hostname/address)
ssh-keyscan -H $TARGET_HOST >> ~/.ssh/known_hosts

Lần sau khi bạn kết nối, bạn sẽ kết nối mà không được hỏi Are you sure you want to continue connecting (yes/no)?vì các phím sẽ có trong known_hoststệp.


1
xem thêm StricthostKeyChecking trong ~ / .ssh / config
Jeff Schaller

1
Tôi sẽ sử dụng một tên biến khác .... HOST nằm trong một số shell đặt tên máy chủ của riêng bạn, vì vậy tôi không muốn thay đổi nó (Tôi biết người ta có thể thoát ra hoặc thực hiện điều này từ một mạng con, nhưng vẫn , tại sao không thehostthay thế? hoặc một cái gì đó. Một biến ALLCAPS có thể va chạm với một tên nội bộ dành riêng. Tên nhỏ không nên.)
Olivier Dulac

Các khóa này trong know_host được tiền tố bởi một số nội dung bắt đầu bằng | 1 |. Những thứ đó không được thêm vào tập tin thông qua phương pháp này, hoặc tôi sai? Vậy thì có gì khác biệt, bởi vì những gì ssh-keyscan trả về không bắt đầu bằng | 1 |
Daniel F

1
(@ DanielF +) nếu bạn sử dụng định dạng băm và chấp nhận chìa khóa (s) trong sshcó mục riêng biệt cho các tên máy chủ và địa chỉ của nó (es), vì vậy bạn nên ssh-keygen -R mỗi trong số họ để tránh xung đột
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.