sshpass 및 rsync를 사용하여 지문 허용

sshpass 및 rsync를 사용하여 지문 허용

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-newno~/.ssh/known_hostsask

호스트 키가 변경되면 다음으로 시작하는 경고 메시지를 받게 됩니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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>

관련 정보