ssh/scp는 작동하지만 rsync는 항상 "아니요"라고 말합니다.

ssh/scp는 작동하지만 rsync는 항상 "아니요"라고 말합니다.

linux안녕하세요, 클라이언트 에 백업해야 하는 Windows 2003 서버가 있어서 cygwin이를 활성화했지만 Win2k3( 서버가 포트 22에서 수신 대기하는 사용자 정의 Windows SFTP 서버를 사용하기 때문에 ) /on을 설정해야 합니다. cygwin에서 실행하십시오 . 좋은 결과. ssh/scp를 사용하고 명령줄에서 -p/-P 스위치를 사용하는 한.Win2k3sshscpWin2k3scpsshport 222

나는 훌륭하게 작동하는 내 사용자를 위해 ssh/scp를 통해 슬레이브를 설정했습니다 SSH Public/Private Key Pair.linux clientWin2k3 server

그런 다음 Win2k3에서 rsyncd를 시작하고 여기에 사용자를 추가하고 권한을 /etc/rsyncd.conf생성 /etc/rsyncd.secrets하고 할당했는데 괜찮아 보였습니다.

그런 다음 ssh를 통해 rsync 연결 /not/을 시도하면 작동하지만 /only/는 ssh를 통해 연결하기를 원하며 이렇게 하면 매번 0바이트로 실패합니다. 여러 사용자를 시도하고 rsyncd.conf를 백만 번 다시 작성했지만 계속 실패합니다. 클라이언트 관점에서 ssh 포트가 222임을 rsync 클라이언트에 알려야 한다는 생각이 들기 시작했습니다. 그렇다면 어떻게 해야 합니까?

답변1

예, 물론 다음을 수행해야 합니다.

rsync -e 'ssh -p 222' ...

또는:

RSYNC_RSH='ssh -p 222' rsync ...

~/.ssh/config또는 이 호스트 에 대한 연결이 기본적으로 ssh포트 222에 있도록 지정할 수 있습니다.

Host that-host
Port 222

답변2

매우 늦은 답변이지만 다른 사람들에게 도움이 될 수 있습니다 ...

rsync두 가지 모드 중 하나로 실행합니다.

  1. 이를 실행할 수 ssh있으며 로컬 rsync프로세스는 원격 시스템에서 프로세스를 시작하여 rsync서버 역할을 하고 ssh두 시스템 간에 암호화된 전송을 제공합니다. 이 모드는 원격 호스트와 원격 경로 사이에 단일 콜론으로 표시됩니다.

    rsync /path/to/local/ remote:/path/to/remote
    
  2. 이를 데몬으로 실행할 수 있으며 로컬 rsync프로세스는 이미 실행 중인 서버 rsync프로세스에 직접 연결됩니다. ssh이 체계는 암호화(OR)를 제공하지 않습니다. 이 모드는 원격 호스트와 원격 경로 사이에 이중 콜론으로 표시됩니다.

    rsync /path/to/local remote::/path/to/remote
    

ssh서버를 설치할 필요가 없습니다그리고데몬 rsync프로세스. 둘 중 하나로 충분합니다.

보안 LAN 또는 파일 내용이 노출되는 상황에서는 rsync사용자가 원격 시스템에 로그인할 필요가 없으므로 데몬이 더 적합할 수 있습니다. 이 ssh방법은 보안되지 않거나 신뢰할 수 없는 네트워크(예: 인터넷)에 더 적합하지만 매우 신중한 설정이나 사용자가 원격 시스템에 로그인하는 기능이 필요합니다.

.NET을 통해서만 연결하려는 상황에서 ssh데몬을 구성하거나 실행하는 것은 의미가 없습니다 rsync.

관련 정보