내 LAN(데비안 서버, Windows 클라이언트)에서는 이 코드와 함께 rsync:// 프로토콜을 사용합니다.
cwRsync\rsync.exe -avLP --force --append-verify rsync://rsync-usb@server/rsync-usb/* usb/
rsync:// 프로토콜을 사용하는 데몬 모드의 rsync는 암호화를 사용하지 않는다는 내용을 읽었으므로 인터넷을 통해 rsync를 사용하려면 암호화를 사용하고 싶습니다. 나는 rsync://user@server/module의 단순함을 좋아합니다.
내 서버에 대한 액세스 권한을 부여하고 싶지 않기 때문에 로그인을 허용하는 SSH 사용자를 사용하고 싶지 않습니다.
로그인이 차단된 사용자를 생성했습니다
rsyncssh:x:1001:1007:,,,:/tmp:/bin/false
SSH를 통해 rsync:// 프로토콜을 터널링하는 방법이 있습니까? 예를 들어 plink.exe(퍼티 링크)와 개인 사용자 키를 사용하시나요?
답변1
저는 암호화된 채널을 생성하기 위해 SSH 포트 터널링을 자주 사용합니다. rsync://
URL을 사용하고 있으므로 원격 서버의 TCP 포트 873에서 rsync 데몬이 실행되고 있다고 가정합니다. 이 포트를 다음과 같이 전달할 수 있습니다.
ssh -N -L 873:localhost:873 rsyncssh@server
이 -N
옵션은 유효한 쉘이 없기 때문에 세션 연결을 끊는 원격 명령 실행을 방지합니다. 이제 localhost의 전달된 포트를 통해 원격 서버에 연결하여 원격 서버와 동기화할 수 있습니다. 즉, 이전 명령을 실행 @server
하고 @localhost
.
SSH 명령에 옵션을 추가하여 SSH를 백그라운드로 이동할 수도 있습니다 -f
. 이는 연결을 항상 열어 두려는 경우 편리할 수 있습니다. 편의성과 보안을 위해 개인키로 로그인하는 것을 권장합니다.
원격 서버에서 실행 중인 rsync 데몬이 없으면 하나를 설정하고 man 5 rsyncd.conf
필요한 경우 설명서를 사용하십시오.
답변2
rsync는 ssh를 직접 사용할 수 있습니다. -e를 사용하세요.
rsync -avP -e /home/share/ remote:/home/share
그렇지 않으면 터널이 제대로 작동하고 다른 솔루션이 문제가 될 수 있습니다.