ssh 명령 행은 서버 호스트 키 지문을 지정합니다.


15

사용 ssh전 서버의 호스트 키 지문을 지정할 수 있습니다 명령 행 (OpenSSH를)을?

winscp.com을 사용하면 가능합니다 (예 : -hostkey="ssh-rsa 2048 AA:BB:CC...etc

나는 맨 페이지를 두 번 읽었으며 거기에서 명백한 부분을 놓친 경우 사과드립니다.

호스트 키를 자동으로 수락하고 싶지 않고 사용자에게 업데이트를 요구하지 않고 known_hosts명령 줄에서 호스트 키를 특정 형식으로 지정하십시오.


-o UserKnownHostsFile은 임시 파일과 함께 작동 할 수 있습니다.
payo

답변:


16

OpenSSH에는 호스트 키 지문을 전달하는 명령 줄 옵션이 없습니다.

임시 파일 (와 같은 형식 known_hosts) ssh을 사용하고 -o UserKnownHostsFile다음 을 사용하여 사용할 수 있습니다 .

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

참고 항목 ssh합니다 (에 대한 -o) 및 ssh_config합니다 (대한 UserKnownHostsFileman 페이지).


을 사용해도됩니다 StrictHostKeyChecking yes.


명령 행에서 rsa 키 지문 자동 수락 에 제안 된대로 다음 을 수행 할 수있는 작은 스크립트를 작성할 수 있습니다.

#!/bin/bash

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

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

rm $TEMPFILE

script를 호출하면 ssh_known_host키를 첫 번째 인수로 전달하여 사용할 수 있습니다.

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

-o UserKnownHostsFile=<(echo "hostname ssh-rsa ...")작동하지 않는 단서 가 있습니까?
kasperd

2
@kasperd 아마도 생성 된 fd는 한 <()번만 읽을 수 있고 ssh파일을 반복해서 읽을 수 있기 때문일 수 있습니다 .
Martin Prikryl

StrictHostKeyChecking을 사용하여 답변과 조언을 주셔서 감사합니다. 이 솔루션은 저에게 효과적입니다.
payo

1
스크립트 솔루션이 MITM (Man-in-the-Middle) 공격을 피한다는 편집에 대해 언급하는 것을 잊었습니다.
RDP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.