Buộc ssh không in Nhận dạng máy chủ từ xa đã thay đổi cảnh báo của Zack


23

Có cách nào để tránh ssh in tin nhắn cảnh báo như thế này không?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

Mặc dù danh tính máy chủ từ xa đã thay đổi nhưng tôi biết nó vẫn ổn và chỉ muốn thoát khỏi cảnh báo này.

Câu trả lời:


16

Bốn cách:

Để chỉ kết nối một lần với hệ thống bằng khóa máy chủ mới mà không phải trả lời câu hỏi, hãy kết nối với tùy chọn sau:

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

Để xóa vĩnh viễn cảnh báo cho tất cả các hệ thống, hãy chỉnh sửa ~/.ssh/configtệp của bạn để thêm các dòng sau:

Host *
StrictHostKeyChecking no

Để xóa vĩnh viễn tất cả các cảnh báo cho một máy chủ này, hãy chỉnh sửa ~/.ssh/configtệp của bạn và thêm các dòng sau:

Host this.one.hostname
StrictHostKeyChecking no  

Để xóa cảnh báo cho một thay đổi này cho một máy chủ này, hãy xóa khóa máy chủ cho máy chủ đó khỏi ~/.ssh/known_hosts. Lần sau khi bạn kết nối, khóa máy chủ mới sẽ được thêm vào.


Trong tùy chọn thứ hai, cấu hình phải được thực hiện ở phía máy chủ mà chúng ta đang kết nối phải không?
coffeMug

Không, đó là $HOME/.ssh/configvấn đề của riêng bạn trong cả lựa chọn thứ hai và thứ ba.
Jenny D

Điều này vẫn in một cảnh báo cho tôi (mặc dù nó cho phép kết nối).
Michael Mior

24

Thêm phần này vào ~ / .ssh / config:

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 

3
MOD UP - chỉ có một câu trả lời thực sự cho câu hỏi - đây là câu trả lời duy nhất để không chỉ hoạt động mà còn CUNG CẤP CẢNH BÁO.
Brad

Rất tiếc, có vẻ như người dùng vỏ cá sẽ không thể sử dụng tính năng tự động hoàn thành ssh đẹp cho các máy chủ được kết nối trước đó nếu họ đặt UserKnownhostFile thành / dev / null. Người dùng cá và có thể tất cả mọi người không nên thiết lập điều đó.
Elijah Lynn

Bạn tốt hơn nên tạo một ssh0tập lệnh / bí danh / chức năng cho ssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERRORvà sử dụng nó một cách rõ ràng thay vì bỏ các tùy chọn đó vào ~/.ssh/config. Bạn có thể quên chúng và sau đó tự hỏi tại sao séc không hoạt động khi bạn chỉ muốn chúng hoạt động.
Chú Billy

20

Bạn có thể lấy dòng cho máy chủ đó ra khỏi ~/.ssh/known_host(mọi máy chủ đều có một dòng là mục nhập ở đó).

Thay thế là sử dụng:

ssh -q -o "StrictHostKeyChecking no" ....

Chỉ cần sử dụng -qsẽ sshâm thầm thất bại.


9

Đôi khi không thêm khóa máy chủ vào $ HOME / .ssh / know_hosts mặc định là điều mong muốn.

Sử dụng -o UserKnownHostsFile=/dev/nullbổ sung -q-o StrictHostKeyChecking=nođể giữ cho know_host không bị xáo trộn. Đây là một ví dụ:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q user@scripts.local

2

Một đề xuất thay thế là xác định lý do tại sao khóa máy chủ thay đổi và khiến nó dừng thực hiện điều đó.

Ví dụ: nếu bạn đang xây dựng các máy chủ trong các thùng chứa hoặc thông qua một hệ thống cung cấp, hãy đảm bảo rằng chúng luôn sử dụng cùng một khóa máy chủ đã biết.

Tôi biết rõ điều này không phải lúc nào cũng có thể và các máy chủ có thể được quản lý ngoài phạm vi kiểm soát của bạn, nhưng những cảnh báo về mã khóa đó là có lý do và rất quan trọng. Giảm số lượng ngoại lệ là một điều tốt.

Mặt khác, tôi bỏ phiếu cho StricthostKeyChecking No trong máy chủ cụ thể của bạn ~/.ssh/config chỉ trong câu hỏi.

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.