프로덕션 서버에서 하위 환경 서버로 파일을 복사하는 여러 작업을 실행하기 위해 crontab 서버를 설정하고 있습니다.
한 서버에서 다른 서버로 파일을 복사하려면 cron 서버 작업이 필요합니다. 이것이 내가 가진 것입니다.
아이피가 수정되었습니다
ssh -v -R localhost:50000:1.0.0.2:22 -i host1key.pem [email protected] 'rsync -e "ssh -i /home/ec2-user/host2key.pem -p 50000" -vuar /home/ec2-user/test.txt ec2-user@localhost:/home/ec2-user/test.txt'
저는 두 개의 서로 다른 pem 키와 사용자를 사용하고 있습니다. 이 명령이 작동할 것이라고 생각했는데 디버그 로그에 이 오류가 표시됩니다. 여기에는 무엇이 잘못되었는지 보여주는 내용이 더 있습니다. 연결이 [email protected]
성공했습니다. 하지만 오류는 다음과 1.0.0.2
같습니다
debug1: connect_next: host 1.0.0.2 ([1.0.0.2]:22) in progress, fd=7
debug1: channel 1: new [127.0.0.1]
debug1: confirm forwarded-tcpip
debug1: channel 1: connected to 1.0.0.2 port 22
Host key verification failed.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
debug1: channel 0: free: client-session, nchannels 2
debug1: channel 1: free: 127.0.0.1, nchannels 1
Transferred: sent 5296, received 4736 bytes, in 0.9 seconds
Bytes per second: sent 5901.2, received 5277.2
debug1: Exit status 12
답변1
나는 똑같은 문제가 있습니다.
RSYNC가 원하는 작업을 수행하려면 서버 1.0.0.1 및 1.0.0.2~ 해야 하다그들 사이에는 연관성이 있습니다. 이것은 분명해 보이지 않을 수도 있지만 그렇습니다.
줄 사이를 조금만 읽어보면 .1과 .2 사이에는 직접적인 연관성이 없으며, 이를 얻을 방법도 없다는 결론에 도달하게 됩니다.
이 경우에는 항상 .1에서 데이터를 가져와서 .2로 푸시합니다. 이로 인해 두 개의 프로세스가 필요하고 두 배의 시간이 걸립니다.
이 답변이 같은 상황에 있는 다른 사람들에게도 도움이 되기를 바랍니다.
나는 그것을 알아 내려고 몇 달을 보냈습니다. 아마도 이것은 여러분 중 일부에게 많은 시간을 절약해 줄 것입니다.
답변2
오류 메시지가 문제를 설명합니다.
Host key verification failed.
키가 올바르지 않거나 키가 올바른지 (대화식으로) 확인하지 않았습니다.