Tự động chấp nhận dấu vân tay rsa từ dòng lệnh


15

Tôi đã cố yes | ssh root@10.x.x.xgắng chấp nhận dấu vân tay của khóa RSA, nhưng vẫn được nhắc nếu tôi chắc chắn muốn kết nối. Có cách nào để làm điều này tự động?

Câu trả lời:


8

Thêm chúng vào tập tin khởi động bash của bạn, hoặc tương tự:

 #
 #  ssh + scp without storing or prompting for keys.
 #
 function sshtmp
 {
     ssh -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
              "$@"
 }
 function scptmp
 {
     exec scp -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
         "$@"
 }

Sau đó sử dụng sshtmp, hoặc scptmpthay thế sshscp.

LƯU Ý Nếu bạn đi xuống con đường này, bạn sẽ không được thông báo rằng khóa máy chủ đã thay đổi và sẽ mất bảo mật.


4
Cảm ơn ssh -o "StrictHostKeyChecking no" root@10.x.x.xđã làm việc cho tôi
VenomFangs

16
Làm thế nào đây là câu trả lời? Câu hỏi là tự động chấp nhận các phím, không bỏ qua chúng! Nếu điều này được hỏi và trả lời ở đây thì làm sao tôi tìm được câu trả lời cho câu hỏi thực tế "Chấp nhận khóa tự động"? Ghét phải làm một downvote nhưng mọi người ơi, đây không phải là cách trao đổi stack!
JohnnyB

@JohnnyB hãy xem câu trả lời của tôi. Nó không phải là giải pháp sạch nhất, nhưng nó thực sự cho phép khóa được tự động chấp nhận
RDP

13

OpenSSH 7.6 đã giới thiệu StrictHostKeyChecking=accept-newcài đặt mới cho chính xác mục đích này:

ssh(1): expand the StrictHostKeyChecking option with two new
   settings. The first "accept-new" will automatically accept
   hitherto-unseen keys but will refuse connections for changed or
   invalid hostkeys. This is a safer subset of the current behaviour
   of StrictHostKeyChecking=no. The second setting "n", is a synonym
   for the current behaviour of StrictHostKeyChecking=no: accept new
   host keys, and continue connection for hosts with incorrect
   hostkeys. A future release will change the meaning of
   StrictHostKeyChecking=no to the behaviour of "accept-new".

( Ghi chú phát hành OpenSSH 7.6 )


10

Sử dụng SSH có lập trình với khóa máy chủ đã biết

Nếu điều bạn muốn là có thể sử dụng lập trình VÀ tránh tấn công Man-In-The-Middle , thì tôi khuyên bạn nên lấy dấu vân tay đã biết bằng cách sử dụng lệnh ssh-keyscan. Thí dụ:

$ ssh-keyscan -t rsa,dsa github.com 2>/dev/null
github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

Sau đó, bạn có thể giả mạo một tập lệnh để lưu nó vào một tập tin tạm thời và sử dụng UserKnownHostsFiletùy chọn. Ví dụ dưới đây là một tập lệnh, có thể được gọi là ssh_github:

#!/bin/bash

HOSTKEY='github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+                      h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+                                                                                                                                      PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+    2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=='

TEMPFILE=$(mktemp)
echo "$HOSTKEY" > $TEMPFILE

ssh -o "UserKnownHostsFile $TEMPFILE" $@

rm $TEMPFILE

Với điều này, bạn chỉ có thể chạy ssh_githubthay vì sshvà nó sẽ kết nối ngay cả khi không có known_hoststệp nơi bạn đặt tập lệnh.


0

Tôi chỉ sử dụng: 'ssh -o StricthostKeyChecking = không có người dùng @ host', nó cũng có thể được sử dụng với pssh: 'pssh -O StricthostKeyChecking = no -h list.text -l user -A -i "cmd"'

Trân trọng,


Điều này làm việc cho tôi, có một lý do tại sao nó đã được bỏ phiếu? Cũng yêu cầu OpenSSH 7.6+
Xenocide8998

-3

Bạn có thể sử dụng -ytùy chọn: tức là thử

ssh -y root@10.x.x.x

-y Luôn chấp nhận khóa máy chủ từ xa nếu không biết


Chào mừng bạn đến với Lỗi Máy chủ! Vui lòng sử dụng Markdown và / hoặc các tùy chọn định dạng trong menu chỉnh sửa để đặt đúng các bài đăng của bạn để cải thiện khả năng đọc của chúng. Đó là quy ước để định dạng các lệnh là " code".
HBruijn

Lạ nhưng ở người đàn ông tôi thấy như sau --y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha

Tôi thấy điều tương tự ở người đàn ông.
Király István

Đây không phải là một lựa chọn ssh hợp lệ? Bạn đã sao chép / dán cái này từ đâu?
Flo Woo

2
Tùy chọn này chỉ tồn tại trong SSH dropbear, không phải OpenSSH.
Jeremy Visser
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.