Történt, hogy szükségem volt több gigányi bioinformatikai anyagra egy szerveren, amit nem volt könnyű megközelíteni. Először is csak bizonyos tartományokról lehetett kapcsolódni hozzá, de ez volt a kisebb baj. A nagyobb probléma az volt, hogy a célszerver (legyen a neve storage), csak két másik szerveren keresztül volt elérhető. (Legyen a nevük gate és barrier)
A belépés valami ilyesmi volt:
local> ssh gate
gate> ssh barrier
barrier> ssh storage
Ez igen kellemetlen, ha adatokat akarok lementeni róla, hiszen sok scp lépésre van szükség. Arról nem is beszélve, hogy sem a gate, sem a barrier nem tartalmaz annyi tárhelyet, hogy átmenetileg ott tároljam az adatokat. Szükség lenne egy olyan lépésre, ami segítségével egyből elérhetném a storage-t.
Itt jönnek képbe az ssh alagutak. Nem vagyok nagy szakértő, én is innen tanultam meg a lépéseket. Viszont itt egyszerűbb eset volt vázolva, mint amire nekem szükségem lett volna. Ha két gépen is át kell menni, akkor a következő konfigurációs állomány jöhet szóba:
Host gate
HostName gate.ize.com
User Travis
LocalForward 22000 barrier.ize.com:22
Host barrier
HostName localhost
User Travis
Port 22000
LocalForward 22001 storage.ize.com:22
Host storage
HostName localhost
User Travis
Port 22001
Ennyi. A kapcsolódás is módosul kissé:
localhost> ssh -N -f -q gate
localhost> ssh -N -f -q barrier
localhost> ssh storage
Bent vagyunk! Az utolsó ssh-t scp-re is cserélhetjük, és már másolhatjuk is az adatokat.