서버에서 클라이언트로 디렉터리를 동기화하고 싶습니다. 서버에 직접 접속할 수는 없지만 SSH 게이트웨이를 거쳐야 합니다. 내 ".ssh/config"에서:
Host gw
User ab123456
HostName gw.somewhere.ac.uk
IdentityFile ~/.ssh/id_dsa.pub
ServerAliveInterval 60
Host remote
User me
HostName remote.somewhere.ac.uk
IdentityFile ~/.ssh/id_dsa.pub
ProxyCommand nohup ssh gw netcat -w1 %h %p
ServerAliveInterval 60
대화형 세션에서는 작동 ssh
하지만 rsync
실패합니다. 때로는 즉시, 때로는 몇 초 후, 항상 파일을 복사하기 전:
$ rsync -av remote:/path/to/somewhere/ somewhere/
nohup: redirecting stderr to stdout
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.0]
$ rsync -av remote:/path/to/somewhere/ somewhere/
nohup: redirecting stderr to stdout
Access to this system is monitored etc. etc.
receiving incremental file list
Write failed: Broken pipe
rsync: connection unexpectedly closed (12288 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [receiver=3.1.0]
rsync: connection unexpectedly closed (16336 bytes received so far) [generator]
rsync error: unexplained error (code 255) at io.c(226) [generator=3.1.0]
netcat
문제는 기기의 게이트웨이와 관련된 것 같습니다 gw
. 다중 홉 연결을 사용해야 할 때 rsync를 올바르게 사용하는 방법은 무엇입니까?
저는 동료가 일반 SSH에서 작동하는 이 구성 파일을 제공했기 때문에 netcat을 사용하고 있습니다.
경우와는 다르다는 점 참고하세요이 문제rsync -av
, 으로 교체했을 때도 같은 문제가 발생했습니다 (그리고 제대로 동기화하는 기능이 scp -pr
정말 필요했습니다 ).rsync
답변1
교체해서 작동시킬 수 있어요
#ProxyCommand nohup ssh gw netcat -w1 %h %p
그리고
ProxyCommand nohup ssh gw -W %h:%p
최신 OpenSSH와 함께 작동합니다. 이제는 즉시 멈추지 않습니다.