나는 두 개의 리눅스 머신을 가지고 있는데 그들 사이에 'rsync'를 사용하여 파일을 동기화하려고하고있다.
클라이언트 컴퓨터에서 다음을 사용하여 키를 생성했습니다.
ssh-keygen -t rsa
그런 다음 공개 키를 /home/user1/.ssh/authorized_keys 과 /home/user2/.ssh/authorized_keys 파일.
다음 명령을 사용하여 user1에 파일을 rsync 할 수 있습니다.
rsync -a /home/user/sendIt.txt user1@some.host:/home/user1/
그러나 rsync를 사용하여 두 번째 사용자에게 파일을 동기화하려고 할 때 :
rsync -a /home/user/sendIt.txt user2@some.host:/home/user2/
이 오류가 나타납니다.
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(171) [sender=3.0.6]
한 사용자에게 동기화 할 수 있지만 다른 사용자와 동기화 할 수없는 이유는 무엇입니까? 두 번째 사용자는 SFTP 사용자로만 사용하도록 고안되었으며 그는 자신의 홈 디렉토리로 수감되어 있습니다.
미래에 그것을 고치고 피하는 방법에 대한 생각? 도움이된다면 고맙겠습니다. 감사합니다.
.bashrc 원격 서버의 터미널에 아무 것도 출력하지 않습니다. Rsync는이를 기대하지 않을 수 있으며 결과적으로 문제가 발생할 수 있습니다. 텍스트를 출력하는 .bashrc의 명령을 제거하거나 출력을 파이핑하여이 문제를 해결할 수 있습니다. /dev/null. "
.bashrc 파일이 있습니까?
.bashrc 파일은 사용자의 루트 디렉토리에 있습니다. 그래서 당신의 경우에는 /home/user2/.bashrc 또는 ~/.bashrc 해당 사용자로 로그인하는 경우.
rsync ssh는 자신의 집에서 바이너리를 발견하고 실행할 수 없다.