La risposta di ProxyCommand di Grawity ha funzionato per me, ma dal momento che ho meno familiarità con SSH ci sono voluti alcuni esperimenti. Pensavo che avrei semplicemente scritto la risposta di Grawity con maggiori dettagli per aiutare altri neofiti di SSH come me. Ecco le definizioni per una notazione più esplicita:
Macchina A: la macchina su cui ti trovi
Server B: userB@ip.address.for.B (l'host di salto o il server intermedio)
Server C: userC@ip.address.for.C (il server remoto su cui si desidera copiare)
ProxyCommnad
A$ scp -oProxyCommand="ssh -W %h:%p userB@ip.address.for.B" thefile userC@ip.address.for.C:destination
Esempio concreto
Quindi, per un esempio concreto, supponiamo di avere accesso a un server con IP 0.0.1.2
con un account utente chiamato bar
(Server C). Ma per accedervi devi prima accedere a un server con IP 0.0.1.1
con account utente chiamato foo
(Server B). Ora si vuole copiare il file baz.txt
che si trova sul computer corrente (Macchina A) al server 0.0.1.2
's /home/bar/
directory. Per utilizzare il ProxyCommand sopra per questo esempio, eseguire quanto segue:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" baz.txt bar@0.0.1.2:/home/bar/
Puoi anche copiare facilmente un file dal Server C cambiando l'ordine del file e la destinazione. Quindi, ad esempio, se si baz.txt
trovava già sul server 0.0.1.2
, /home/bar/
è possibile copiarlo sul computer utilizzando:
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
Spero che questo aiuti le persone che hanno bisogno di spiegazioni per loro un po 'più di altre.
A$ rsync <options> -e 'ssh B ssh' source C:destination