rsync를 사용하여 파일을 장치에 복사하고 있습니다.
sshpass -p <password> rsync -avzP <file> <user>@<IP address>:<folder>
이전에는 이 방법이 잘 작동했지만 새 장치에 복사해 보았는데 다음과 같은 결과가 나왔습니다.
Host key verification failed.
rsync error: unexplained error (code 255) at rsync.c(703) [sender=3.2.3]
나는 제거 sshpass
하고 시도한 결과 rsync -avzP <file> <user>@<IP address>:<folder>
다음을 얻었습니다.
The authenticity of host '<IP address>' can't be established.
<Name> key fingerprint is SHA256:<hex>.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
입력하면 yes
문제가 해결되었으며 원래 명령을 실행할 수 있었습니다. 하지만 하나의 명령으로 이 작업을 어떻게 수행할 수 있습니까 sshpass
?
답변1
또는 StrictHostKeyChecking
으로 설정 하면 새 호스트가 파일 에 자동으로 추가됩니다 . 기본값은 입니다 .accept-new
no
~/.ssh/known_hosts
ask
호스트 키가 변경되면 다음으로 시작하는 경고 메시지를 받게 됩니다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
연결을 허용하도록 설정된 경우 no
. 사용 시 accept-new
호스트 키 변경은 허용되지 않으며 먼저 문제가 있는 행을 삭제해야 합니다 known_hosts
.
sshpass -p <password> rsync -avzP -e 'ssh -o StrictHostKeyChecking=accept-new' <file> <user>@<IP address>:<folder>
모든 호스트에 대한 기본 설정을 재정의하려면 다음 위치에 항목을 추가할 수 있습니다 ~/.ssh/config
.
Host *
StrictHostKeyChecking accept-new
답변2
known_hosts
이 경로에 있는 파일을 삭제해야 합니다.~/.ssh/known_hosts
이 "-o StrictHostKeyChecking=no"
옵션을 사용하면 호스트 키 확인 프롬프트를 우회하고 새 호스트 키를 파일에 자동으로 추가할 수 있습니다 known_hosts
. 업데이트된 명령은 다음과 같습니다.
sshpass -p <password> rsync -o StrictHostKeyChecking=no -avzP <file> <user>@<IP address>:<folder>