rsync에 -e ssh가 필요합니까?


22

서버에서 복사 할 때는 항상 다음 명령을 사용했습니다 rsync --progress -avze ssh user@host:/path/to/files ./here. 그러나 마음의 친구는 내가 간단하게 할 수 있음을 보여주었습니다 rsync --progress -avz user@host:/path/to/files ./here. 그래서 문제는 -e ssh왜 필요하지 않다면 왜 그런가?

답변:


20

사용자 및 호스트 외부의 ssh 명령에 추가 옵션이 필요할 때마다 -e 플래그가 필요합니다. 연결하려는 서버가 포트 2222에서 ssh 수신 대기 중일 수 있습니다.

rsync -e 'ssh -p 2222' /source usr@host:/dest

이 문제를 해결하는 대신 사용할 수있는 파일이 2 개 있습니다. /etc/ssh/ssh_config또는~/.ssh/config

구성 파일은와 동일한 형식을 사용합니다 ssh_config. 사용자별로 구성 할 수 있습니다!


9

-e기본이 아닌 개인 키 위치를 사용하는 경우 (예 :을 통해 개인 키 지정) 도 필요 합니다 -e 'ssh -i /path/to/private/key/file.pem'. 그와 관련하여 sshd의 기본이 아닌 청취 포트도 있습니다. 기본적으로 -e사용 ssh user@host이 작동하지 않는 경우 사용 하십시오 .


-i귀하의 예제에서 SSH 또는 rsync에 대한 옵션은? 그리고 그것이 ssh 용이라면 명령 주위에 작은 따옴표없이 작동합니까?
이즈 카타

아, 따옴표가 필요합니다. 내 답변을 편집 중입니다.
cjc

8

ssh를 사용하기 위해 -e ssh가 필요하지 않습니다. 실제로 대상을 user @ host : / path / to / files로 지정하면 기본적으로 ssh가 사용됩니다. a) 호환성 이유로 b) rsyncd 및 ssh 호스트를 조합했을 수있는 프린지 (fringe) 경우입니다.


2
예를 들어 RSYNC_RSH의 기본값은 'rsh'이므로 RHEL 3에서 필요합니다.
Kyle Smith

5

--with-rsh컴파일시 configure 옵션에 지정된 내용에 따라 다릅니다 . 이 옵션을 지정하지 않으면 기본값은 ssh입니다. 과거에는 rsh 였지만 rsh 인 경우에도 많은 상자에서 ssh가 기본 rsh 구현이므로 필요하지 않을 수 있습니다. 예를 들어 모든 컴퓨터에서 readlink -f $(which rsh)rsh는 / usr / sbin / ssh를 가리키는 심볼릭 링크라는 것을 보여줍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.