Vô hiệu hóa StricthostKeyChecking trong ssh


14

Tôi đang cố gắng kết nối với máy chủ Linux bằng cách sử dụng sshvà gặp lỗi sau

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Tôi muốn ghi đè lên điều này, nhưng dường như không thể tìm thấy bất kỳ sự kết hợp tùy chọn nào để làm điều này.

Tôi có thể đặt StricthostKeyChecking nhiều năm trước, nhưng không nhớ làm thế nào.

Tôi đã tham khảo ý kiến man sshthông báo cho tôi tệp cấu hình toàn hệ thống /etc/ssh/ssh_configvà mặc định cho tệp cấu hình trên mỗi người dùng ~/.ssh/configkhông tồn tại.

EDIT Để làm rõ câu hỏi của tôi, tùy chọn được đặt rõ ràng. Tôi đang cố gắng khám phá

  1. Nơi các tùy chọn được lưu trữ (Tôi không có các tệp được đề cập trong trang man, dường như là sai).
  2. Làm thế nào để thay đổi các tùy chọn.

Tôi không xem xét cách khắc phục sự cố mà tôi đang gặp phải (Tôi biết tôi có thể chỉnh sửa tệp know_hosts, nhưng điều này thật tẻ nhạt mỗi khi tôi thử máy chủ mới).


Nó là của /etc/ssh_configtôi.
s Harborky

@sboursky Tôi cũng có cái này (khác với đàn ông) nhưng tất cả các tùy chọn đều được nhận xét.
Milliways

Điều này có nghĩa là mặc định, mà theo trang man là ask. Khi khóa máy chủ thay đổi, ssh client sẽ không kết nối trừ khi StrictHostKeyCheckingđược đặt thành no. Nếu khóa máy chủ không thay đổi thường xuyên, tôi khuyên bạn nên xóa khóa máy chủ này khỏi máy chủ ~/.ssh/known_hoststhay vì thay đổi cấu hình.
s Harborky

1
Trước tiên, bạn phải tìm ra lý do tại sao nó đã được thay đổi. Nếu bạn không thay đổi nó, thì đó có thể là một cuộc tấn công MitM, và dĩ nhiên bạn không nên cho phép khóa máy chủ này!
Tên hiển thị

lưu ý phụ - sau khi xóa tất cả các bản ghi cho một máy chủ nhất định khỏi .ssh/known_hoststôi tiếp tục nhận được cảnh báo cho đến khi tôi phát hiện ra hàng vi phạm trong một tệp khác được gọi .ssh/known_hosts2. rõ ràng OS X sử dụng cả hai
billynoah

Câu trả lời:


18

Để vô hiệu hóa kiểm tra máy chủ nghiêm ngặt trên OS X cho người dùng hiện tại, hãy tạo hoặc chỉnh sửa ~ / .ssh / config và thêm các dòng sau:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Một ví dụ điển hình cho các máy chủ trong mạng cục bộ của bạn có thể là:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Tùy thuộc vào việc sử dụng ssh của bạn, tôi không khuyên bạn nên vô hiệu hóa kiểm tra khóa máy chủ nghiêm ngặt cho tất cả các máy chủ.

Nếu bạn chỉ muốn xóa mục nhập cho 10.1.1.20 mở ~ / .ssh / know_hosts bằng trình chỉnh sửa bạn chọn và xóa dòng tương ứng "10.1.1.20 ssh-rsa public-key $ "


Cũng có vẻ hoạt động mà không có dòng / dev / null.
John2095 17/03/2016

6

Bạn chỉ có thể thử nó vì nó không có confitguration, chỉ trên dòng lệnh:

ssh -o StrictHostKeyChecking=no hostname

Nhưng tôi không nghĩ rằng nó làm tất cả những gì bạn cần. Nếu bạn muốn bỏ qua tất cả kiểm tra khóa máy chủ, bạn cần thiết lập known_hoststệp của mình /dev/nullđể không bao giờ có bất cứ thứ gì được lưu trữ:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

hoặc trong /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Lần đầu tiên vẫn không cho phép tôi kết nối, nhưng ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnameđã làm. Tôi vẫn không thể tìm thấy WHERE StricthostKeyChecking được đặt!
Milliways

Nó mặc định là "có" vì vậy nó không phải được đặt ở bất cứ đâu để áp dụng.
Jakuje

Tài liệu nói rằng nó mặc định là có
Milliways

chọn làm giải pháp sẽ giúp ích nếu nó giúp giải quyết vấn đề của bạn;)
Jakuje
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.