동일한 로컬 네트워크에 있는 두 컴퓨터에 rsync를 설치했습니다. 둘 사이에 /var/www/html/ 폴더를 동기화하려고 합니다.
머신 A에 "rsync"라는 사용자를 생성했습니다.
그런 다음 머신 B에서 다음 명령을 실행합니다.
rsync --rsh=rsh [email protected]:/var/www/html/ /var/www/html/
...다음 오류가 발생합니다.
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.2]
명령에 ssh 대신 rsh가 필요한 경우 "publickkey" 관련 오류가 발생하는 이유는 무엇입니까? 내부망이기 때문에 도청의 위험이 없기 때문에 rsh를 이용해서 일을 단순화시키고 싶었습니다.
누구든지 이 작업을 수행하기 위해 내가 놓친 단계를 말해 줄 수 있습니까?
(몇 가지 추가 참고 사항: 다른 rsync 플래그가 필요하다는 것을 알고 있지만 이것으로 시작했습니다. 또한 시도해 보았습니다.[이메일 보호됨]예상했던 오류가 발생했습니다. 그래서 나는 그것이 적어도 올바른 장소에 연결하려고 노력하고 있다는 것을 알고 있습니다. )
답변1
rsh
실제 클라이언트를 설치 하셨나요 ? 아니면 /usr/bin/rsh
심볼릭 링크 입니까 /usr/bin/ssh
? 이것은 오늘날 매우 일반적인 설정입니다.
예를 들어 Debian에서는 rsh
대체 시스템을 통해 다음과 같은 심볼릭 링크를 사용합니다 ssh
.
$ ls -lF /usr/bin/rsh
lrwxrwxrwx 1 root root 21 May 18 2018 /usr/bin/rsh -> /etc/alternatives/rsh*
$ ls -lF /etc/alternatives/rsh
lrwxrwxrwx 1 root root 12 May 18 2018 /etc/alternatives/rsh -> /usr/bin/ssh*
$ update-alternatives --display rsh
rsh - auto mode
link best version is /usr/bin/ssh
link currently points to /usr/bin/ssh
link rsh is /usr/bin/rsh
slave rsh.1.gz is /usr/share/man/man1/rsh.1.gz
/usr/bin/ssh - priority 20
slave rsh.1.gz: /usr/share/man/man1/ssh.1.gz
실제 클라이언트를 원한다면 대체 링크를 자동으로 업데이트하는 패키지를 rsh
설치해야 합니다 .rsh-client
rsh-client
예를 들어 테스트를 위해 방금 가상 머신에 설치했습니다 .
# update-alternatives --display rsh
rsh - auto mode
link best version is /usr/bin/netkit-rsh
link currently points to /usr/bin/netkit-rsh
link rsh is /usr/bin/rsh
slave rsh.1.gz is /usr/share/man/man1/rsh.1.gz
/usr/bin/netkit-rsh - priority 100
slave rsh.1.gz: /usr/share/man/man1/netkit-rsh.1.gz
/usr/bin/ssh - priority 20
slave rsh.1.gz: /usr/share/man/man1/ssh.1.gz
추신: rsh
오래되고 안전하지 않은 쓰레기입니다. 어떤 경우에도 "완전히 신뢰할 수 있고 신뢰할 수 있는" 로컬 네트워크에서도 이를 사용해서는 안 됩니다. 대신 사용하십시오 ssh
. 몇 분만 시간을 내어 SSH 키 쌍을 만들고(아직 없는 경우) ~/.authorized_keys
원격 시스템의 파일에 공개 키를 설치하세요.