
컴퓨터 A, B, C가 있습니다. 각 컴퓨터에는 SSH가 활성화되어 있으며 이를 사용할 수 있습니다 rsync
.
- A는 B로 SSH를 통해 연결할 수 있습니다.
- B는 C로 SSH를 통해 연결할 수 있습니다.
- A는 C에 SSH를 통해 연결할 수 없습니다.
B는 공개 SSH 액세스 권한을 갖고 있으므로 A는 B에 연결할 수 있고, C는 A가 속하지 않은 VPN에 있기 때문에 통신할 수 있습니다.
C에서 A로 일부 파일을 복사하고 이에 대한 cronjob을 생성하고 싶습니다.
이를 수행할 수 있는 좋은 방법이 있습니까?
고쳐 쓰다:
귀하가 제안한 관련 답변에 설명된 대로 B를 통해 C로 SSH를 통해 연결할 수 있지만 rsync
serverB를 통해 SSH를 통해 연결할 수는 없습니다.
B가 포트 22가 아닌 SSH를 수신하고 있다고 가정합니다.
답변1
이것은 나에게 효과적입니다.
rsync -avzhP -e "ssh -p portB -A user1@serverB ssh" user2@serverC:somedir/ localdir/
참고로 비슷한 질문에 대한 답변을 읽었습니다.
답변2
호스트 A가 ssh
호스트 B에 연결할 수 있고 호스트 B가 호스트 C에 연결할 수 있는 경우 ssh
호스트 A에서 B를 통해 C로 프록시하도록 ssh
클라이언트 구성을 설정할 수 있습니다. 전송으로 rsync
사용할 프로토콜을 지정할 수도 있습니다 ( ). 이 두 가지를 결합하면 작업 내에서도 B를 통해 호스트 A에서 C로 이동할 수 있습니다 .ssh
-e ssh
ssh
rsync
cron
답변3
서버 A, B, C에 22 이외의 포트가 없을 때 이 명령을 사용했습니다.
rsync -azv -e 'ssh -A -J UserServerB@AddressB' /file-in-ServerA UserServerC@AddresServerC:/path-ServerC
그러나 서버 B가 22가 아닌 s 포트를 사용하여 SSH를 통해 연결하는 경우
rsync -azv -e 'ssh -A -J UserServerB@AddressB:PortB' /file-in-ServerA UserServerC@AddresServerC:/path-ServerC