dòng lệnh ssh chỉ định khóa máy chủ lưu trữ dấu vân tay


15

Sử dụng sshdòng lệnh (OpenSSH), tôi có thể chỉ định dấu vân tay của máy chủ không?

Điều này có thể xảy ra với wincp.com bằng cách sử dụng (ví dụ) -hostkey="ssh-rsa 2048 AA:BB:CC...etc

Tôi đã đọc trang người đàn ông một vài lần, tôi xin lỗi nếu tôi bỏ lỡ điều hiển nhiên ở đó.

Tôi không muốn tự động chấp nhận khóa máy chủ và tôi không muốn yêu cầu người dùng cập nhật chúng known_hosts, mà chỉ định khóa máy chủ ở một số dạng trên dòng lệnh.


-o UserKnownhostsFile có thể hoạt động với tệp tạm thời.
payo

Câu trả lời:


16

Không có tùy chọn dòng lệnh trong OpenSSH để vượt qua dấu vân tay của máy chủ.

Mặc dù bạn có thể sử dụng một tệp tạm thời (có cùng định dạng với known_hosts) và sshsử dụng tệp đó bằng cách sử dụng -o UserKnownHostsFile:

ssh -o "UserKnownHostsFile my_temp_known_host" host.example.com

Xem trang người đàn ông ssh(cho -o) và ssh_config(cho UserKnownHostsFile).


Bạn cũng có thể xem xét sử dụng StrictHostKeyChecking yes.


Như được đề xuất trên Tự động chấp nhận dấu vân tay khóa rsa từ dòng lệnh , bạn có thể viết một tập lệnh nhỏ cho phép bạn đạt được điều đó:

#!/bin/bash

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

ssh -o "UserKnownHostsFile $TEMPFILE" ${@:2}

rm $TEMPFILE

Nếu bạn gọi tập lệnh ssh_known_host, bạn có thể sử dụng tập lệnh đó, chuyển khóa làm đối số đầu tiên:

ssh_known_host '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==' git@github.com

Bất kỳ manh mối tại sao -o UserKnownHostsFile=<(echo "hostname ssh-rsa ...")không làm việc?
kasperd

2
@kasperd Có thể vì fd được tạo bởi chỉ <()có thể được đọc một lần, trong khi sshđọc tệp nhiều lần.
Martin Prikryl

cảm ơn câu trả lời và lời khuyên của bạn bằng StricthostKeyChecking. Giải pháp này sẽ làm việc cho tôi.
payo

1
Tôi đã quên đề cập đến việc chỉnh sửa rằng giải pháp kịch bản tránh được cuộc tấn công trung gian
RDP
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.