Odpowiedź ProxyCommand firmy Grawity zadziałała dla mnie, ale ponieważ jestem mniej zaznajomiony z SSH, wymagało to pewnych eksperymentów. Myślałem, że po prostu przeliteruję odpowiedź Grawity bardziej szczegółowo, aby pomóc innym początkującym w SSH, takim jak ja. Oto definicje bardziej wyraźnego zapisu:
Maszyna A: maszyna, na której jesteś
Serwer B: userB@ip.address.for.B (host skoku lub serwer pośredni)
Serwer C: userC@ip.address.for.C (serwer zdalny, na który chcesz skopiować)
ProxyCommnad
A$ scp -oProxyCommand="ssh -W %h:%p userB@ip.address.for.B" thefile userC@ip.address.for.C:destination
Konkretny przykład
Przykładowo powiedzmy, że masz dostęp do serwera z adresem IP 0.0.1.2
z kontem użytkownika o nazwie bar
(Serwer C). Ale aby się do niego dostać, musisz najpierw zalogować się do serwera z adresem IP 0.0.1.1
przy użyciu konta użytkownika o nazwie foo
(Serwer B). Teraz chcesz skopiować plik baz.txt
znajdujący się na danym komputerze (maszynie) do serwera 0.0.1.2
„s /home/bar/
katalogu. Aby użyć powyższego ProxyCommand w tym przykładzie, wykonaj następujące czynności:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" baz.txt bar@0.0.1.2:/home/bar/
Możesz także równie łatwo skopiować plik z serwera C, zmieniając kolejność pliku i miejsca docelowego. Na przykład, jeśli baz.txt
był już na serwerze 0.0.1.2
zlokalizowanym na, /home/bar/
możesz skopiować go na swój komputer, używając:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" bar@0.0.1.2:/home/bar/baz.txt /destination/path/on/A
Mam nadzieję, że to pomaga ludziom, którzy potrzebują czegoś, co zostało im wyjaśnione bardziej niż inni.
A$ rsync <options> -e 'ssh B ssh' source C:destination