명령 행에서 RSA 키 지문 자동 수락


15

yes | ssh root@10.x.x.xRSA 키 지문을 받아들이 려고했지만 연결을 원하는지 묻는 메시지가 계속 표시됩니다. 이것을 자동으로 만드는 방법이 있습니까?

답변:


8

이것을 bash 시작 파일 또는 이와 비슷한 파일에 추가하십시오.

 #
 #  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" \
         "$@"
 }

그런 다음 sshtmp또는 scptmp대신 ssh및을 사용하십시오 scp.

참고이 길로 내려 가면 호스트 키가 변경되어 보안이 손실된다는 경고가 표시되지 않습니다.


4
감사 ssh -o "StrictHostKeyChecking no" root@10.x.x.x합니다.
VenomFangs

16
이것이 어떻게 대답입니까? 문제는 키를 자동으로 수락하고 무시하지 않는 것이 었습니다! 이것이 여기에 요청되고 응답되면 실제 질문 "키 자동 수락"에 대한 답변을 어떻게 찾을 수 있습니까? downvote하지만 온 사람들을 싫어하는 것은 스택 교환 방식이 아닙니다!
JohnnyB

@JohnnyB는 내 대답을 살펴보십시오. 가장 깨끗한 솔루션은 아니지만 실제로 키를 자동으로 허용합니다.
RDP

13

OpenSSH 7.6 StrictHostKeyChecking=accept-new은이 목적을 위해 새로운 설정을 도입했습니다 .

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".

( OpenSSH 7.6 릴리스 노트 )


10

알려진 호스트 키와 함께 프로그래밍 방식으로 SSH 사용

프로그래밍 방식으로 사용하고 Man-In-The-Middle 공격 을 피하려면 명령을 사용하여 알려진 지문을 얻는 것이 좋습니다 ssh-keyscan. 예:

$ 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==

그런 다음 스크립트를 위조하여 임시 파일에 저장하고 UserKnownHostsFile옵션을 사용할 수 있습니다. 아래 예제는 다음과 같은 스크립트 일 수 있습니다 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

이를 사용하면 ssh_github대신 실행할 수 있으며 스크립트를 넣을 파일 ssh이 없어도 연결 known_hosts됩니다.


0

나는 단지 다음을 사용합니다 : 'ssh -o StrictHostKeyChecking = no user @ host', pssh와 함께 사용할 수도 있습니다 : 'pssh -O StrictHostKeyChecking = no -h list.text -l user -A -i "cmd"'

문안 인사,


이것은 나를 위해 일했다, 왜 그것이 아래로 투표 된 이유가 있습니까? 또한 OpenSSH 7.6 이상 필요
Xenocide8998

-3

당신은 -y옵션 을 사용할 수 있습니다 : 즉 시도

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

-y 알 수없는 경우 항상 원격 호스트 키를 수락하십시오


서버 결함에 오신 것을 환영합니다! 사용하십시오 마크 다운 가독성을 향상시키기 위해 제대로 입력-설정하려면 편집 메뉴에서 게시물 및 / 또는 포맷 옵션을. 명령을 " code" 로 형식화하는 것이 일반적 입니다.
HBruijn

이상하지만 남자에서 나는 다음을 본다 –-y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha

남자도 마찬가지입니다.
Király István

이것은 유효한 ssh 옵션이 아닙니까? 어디에서 복사 / 붙여 넣기 했습니까?
Flo Woo

2
이 옵션은 OpenSSH가 아닌 dropbear SSH에만 존재합니다.
Jeremy Visser 2012 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.