서버에서 클라이언트로 디렉터리를 재동기화하고 싶습니다. 서버에 직접 액세스할 수는 없지만 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
이 문제는 machine 을 통한 게이트웨이 와 관련이 있다고 가정합니다 gw
. 멀티홉 연결을 사용해야 할 때 rsync를 올바르게 사용하려면 어떻게 해야 합니까?
내 동료가 나에게 이 구성 파일을 주었기 때문에 나는 netcat을 사용하고 있으며 이는 일반 ssh에서 작동합니다.
의 상황과 다르다는 점을 참고하세요.이 질문rsync -av
을 ( 를) 교체할 때 동일한 문제가 발생합니다 ( 올바른 동기화 기능 scp -pr
도 필요합니다 ).rsync
답변1
교체해서 작동시킬 수 있었어요
#ProxyCommand nohup ssh gw netcat -w1 %h %p
~와 함께
ProxyCommand nohup ssh gw -W %h:%p
이는 최신 OpenSSH에서 작동합니다. 이제 즉각적인 시간 초과가 발생하지 않습니다.