SFTP su hop doppio server


15

Sto cercando di elaborare un metodo per consentirmi di accedere ai file su un server SFTP di cui non riesco ad accedere dal mio computer locale. Attualmente, devo SSH su un server remoto (è in un certo blocco IP che il server SFTP finale accetterà da), quindi da lì SFTP al server di destinazione. Da lì, io sono geti file che mi interessano, lasciandoli così sul server middleman, da cui posso ottenere i file su una condivisione Samba o con un diretto scp. Lavoro anche al contrario, dove faccio cadere i file sul middleman, SSH su di esso, quindi SFTP sulla destinazione e putli nelle cartelle appropriate.

Il mio obiettivo è abbreviare questo. Le sfortunate restrizioni sono che la mia macchina è Windows (utilizzo KiTTy e / o Cygwin) e non riesco a modificare il server intermediario (o il server di destinazione) in alcun modo. Sono disposto a utilizzare la riga di comando o i programmi della GUI fintanto che funziona ed è gratuito.

Qualche idea?

Risposte:


24

In sostanza, senza la GUI o altre comodità:

ssh -o ProxyCommand='ssh myfirsthop nc -w 10 %h %p' mydestination

È possibile impostare questo valore predefinito modificando il file di configurazione, per impostazione predefinita ~ / .ssh / config

Host mydestination, mydest2, mydest3
ProxyCommand ssh myfirsthop nc -w 10 %h %p

Questo quindi ti permette di fare

ssh mydestination
scp mydest2:file.txt ./
scp file.txt mydest3:/tmp/

Certo, con quel tipo di magia puoi facilmente

mkdir -pv /tmp/mydest3tmp          # create mountpoint
sshfs mydest3:/tmp /tmp/dest3tmp/  # mount :)

Su Windows, useresti WinSCP che viene fornito con (credo IIRC) PLINK (dalla suite Putty). Suppongo che il percorso predefinito per il configfile ssh sia diverso (dovrei cercarlo su Google), ma sono sicuro che funziona più o meno allo stesso modo.

Nota che l'unica cosa di cui hai bisogno per farlo funzionare è 'netcat ( nc)' sul server di mezzo (primo hop). È uno strumento onnipresente su linux / UNIX [1]; È abbastanza facile costruire una versione collegata staticamente che dovrebbe funzionare se puoi copiarla lì in primo luogo.

[1] nota che ci sono alcuni sapori, quindi potrebbe essere necessario eliminare / scrivere diversamente l'opzione -w


1
Signore, non ho idea di quanto questo mi abbia reso felice :) Perfetto!
josh.trow,

@ josh.trow: No, ma sono contento che tu mi abbia detto :) In qualsiasi momento
vedi il

Anche se, come ha già trovato @ josh.trow, WinSCP ha la funzione di tunneling integrata (vedi l'altra risposta), se mai hai davvero bisogno di usare la configurazione del tunnel da un'applicazione esterna, ecco una guida: winscp.net/eng/docs/ guide_tunnel
Martin Prikryl il

9

Non ho intenzione di impostare questa come risposta accettata perché non l'avrei mai trovata senza @sehe e @Jakub, ma ecco cosa ho trovato che semplifica tutto ...

WinSCP ha la capacità di utilizzare un tunnel SSH integrato. Non so quando è arrivata questa funzione, ma in qualche modo non l'ho mai notato prima.

Impostazioni del tunnel WinSCP



funziona anche in filezilla!
Hayden Thring,

questa funzione consente solo un singolo tunnel ... come aggiungere il secondo tunnel?
zeetit,

@zeetit Quindi devi usare un tunnel esterno. Tutte le opzioni di tunneling sono documentate nella guida di WinSCP al tunneling .
Martin Prikryl,

2

Uno dei miei suggerimenti sarebbe quello di creare un proxy socks usando putty (dalla tua finestra di Windows) e quindi proxy su di esso il tuo client SFTP (ad esempio Filezilla sftp).

Non avresti bisogno di fare nulla di speciale in quel modo, basta accendere il proxy putty socks5, accendere filezilla e sftp i tuoi file sul server di destinazione.

(you ==socks5 proxy==> middle server) ==> destination server

Sembra che tu stia risolvendo un problema diverso, davvero più difficile. Il problema del PO è che la destinazione finale non è instradabile dal client - il traffico SSH in uscita è ok. ( Credo che la tua soluzione sia necessaria per "
tunnelare

@sehe .. cosa? Configura un proxy SSH socks 5 (tunnel ssh nella casella centrale) quindi procedi semplicemente al proxy del tuo traffico SFTP alla casella di destinazione, lì mascherando il server centrale. Quale altro problema sto risolvendo?
Jakub,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.