답변:
"myvps"
호스트 이름으로 지정 하십시오.
rsync /var/bar myvps:/home/foo ...
이것은 나를 위해 작동하지 않았습니다. ~ / .ssh / config에 점프 호스팅이 있습니다.
Host 10.x.y.z
User cloud-user
HostName vm-pivot
IdentityFile /path_to_vm_key
Host 21ct-dev1-*
User cloud-user
HostName %h.example.com
ProxyCommand ssh 10.x.y.z -W %h:%p
IdentityFile /path_to_vm_key
rsync -e "ssh" local_path vm-app01:/remote_path
ssh : 호스트 이름 vm-app01을 확인할 수 없습니다 . nodename 또는 servname 제공 또는 알 수없는 rsync : 연결이 예기치 않게 닫혔습니다 (0 바이트 수신) [송신자] rsync 오류 : / SourceCache / rsync / rsync-에서 설명 할 수없는 오류 (코드 255) 42 / rsync / io.c (452) [발신자 = 2.6.9]
그러나 이것은 잘 작동합니다
[kbroughton@kbroughton:project + (develop)] ssh vm-app01
Last login: Thu Apr 17 12:10:37 2014 from 10.a.b.c
편집, rsync ssh가 -F sudo rsync -az -e "ssh -F /Users/kbroughton/.ssh/config"를 사용하여 구성 파일을로드하도록하여 이름 확인을 통과 할 수있었습니다.
이것은 하나의 오류를지나 다른 오류를 낳습니다. 권한이 거부되었습니다 (publickey, gssapi-keyex, gssapi-with-mic). ssh_exchange_identification : 원격 호스트에 의한 연결 종료
또한 연결에서 명시 적으로 -i 및 user @를 설정하려고 시도했지만 동일한 오류가 발생합니다.
편집하다
다른 데이터 포인트. 이름 대신 vm-pivot rsync 대신 피벗 vm (점프 호스트)의 유동 IP를 사용하면 작동합니다. 그러나 -e "ssh"에서 모든 ssh / config를 명시 적으로 덤프하면 작동하지 않습니다. 세부 사항 : 로컬 Mac, rsync 3.1.0으로 업그레이드, 원격 centos rsync 3.0.9.
[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key -W 10.x.y.z:22" /var/data/sources/data.tar.gz user@vm-pivot:/home/user
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]
[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key -W 10.x.y.z:22" /var/data/sources/data.tar.gz user@10.x.y.z:/home/user
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(181) [sender=3.1.0]
이 작동합니다
[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key" /var/data/sources/data.tar.gz user@10.x.y.z:/home/user
@darKoram. 비표준 경로로 ssh를 호출하고 상속이 없기 때문에 ProxyCommand에서 ssh를 사용해보십시오. 내부 명령에 동일한 파일을 직접 제공하거나 동적으로 해킹하는 두 가지 옵션이 있습니다. http://hubbitus.info/wiki/Blog:Ssh_forwarding_with_same_config_file_hack에 대한 내 블로그 게시물에서 자세한 설명을 볼 수 있습니다 .
곧 상황은 다음과 같은 구성에 도움이 될 것입니다.
Host 21ct-dev1-*
User cloud-user
HostName %h.example.com
ProxyCommand ssh $( egrep -z -A1 '^-F$' /proc/$PPID/cmdline ) 10.x.y.z -W %h:%p
IdentityFile /path_to_vm_key
@
"vm-app01"의 전체 DNS 이름은 무엇입니까? rsync없이 ssh 내에서 도달 할 수 있다고 주장하기 때문에 공개되어야합니다. 그러나 ssh가 "21ct-dev1- *"패턴을 통해 호스트를 잡을 것으로 예상합니다. 나는 이것이 어떻게 어떤 식으로 작동하는지 알 수 없습니다. 호스트 이름을 패턴 화하려고하면 다음과 같아야합니다.
Host *.21ct-dev1-domain.tld
그런 다음 rsync 호출은 다음과 같습니다.
rsync -e "ssh" /local/path/ vm-app01.21ct-dev1-domain.tld:/remote/path/
"vm-app01"은 어떻게 해결됩니까? 호스트 파일, 승, NIS, NSS? 별칭이 있습니까? 도메인 내에 있습니까? "단순한"DNS 문제처럼 보입니다.