Çift sunucu atlama üzerinden SFTP


15

Yerel makinemden erişemediğimden bir SFTP sunucusundaki dosyalara erişmeme izin vermek için bir yöntem üzerinde çalışıyorum. Şu anda, uzak bir sunucuya SSH (son SFTP sunucusunun kabul edeceği belirli bir IP bloğunda), sonra oradan hedef sunucuya SFTP'ye ihtiyacım var. Oradan, ben getilgilendiğim dosyaları, böylece onları bir Samba paylaşımı veya doğrudan ile dosyaları alabilirsiniz aracı aracı üzerine bırakarak scp. Ben de tersine çalışıyorum, burada dosyaları aracıya, SSH'ye, daha sonra hedefe SFTP'ye ve putonları uygun klasörlere bırakıyorum .

Amacım bunu kısaltmak. Talihsiz kısıtlamalar, makinemin Windows (KiTTy ve / veya Cygwin kullanıyorum) olması ve aracı sunucusunu (veya hedef sunucuyu) hiçbir şekilde değiştirememem. Çalıştığı ve ücretsiz olduğu sürece komut satırı veya GUI programlarını kullanmaya hazırım.

Herhangi bir fikir?

Yanıtlar:


24

Aslında, GUI veya diğer kolaylıklar olmadan:

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

Bu varsayılanı yapılandırma dosyasını düzenleyerek varsayılan olarak ~ / .ssh / config yapabilirsiniz.

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

Bu daha sonra yapmanıza izin verir

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

Tabii ki, bu tür bir büyü ile kolayca yapabilirsiniz

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

Windows'ta, (Bence IIRC) PLINK (Putty suite'ten) ile gelen WinSCP'yi kullanırsınız. Ben ssh configdosyası için varsayılan konumu farklı olduğunu düşünüyorum (bunun için google gerekirdi), ama eminim az ya da çok aynı çalışır.

Bunun çalışması için ihtiyacınız olan tek şeyin ncorta sunucuda 'netcat ( )' olduğuna dikkat edin (ilk atlama). Linux / UNIX [1] üzerinde her yerde bulunan bir araçtır; İlk etapta kopyalayabilirseniz çalışması gereken statik olarak bağlantılı bir sürüm oluşturmak oldukça kolaydır.

[1] bazı lezzetler olduğunu unutmayın, bu nedenle -w seçeneğinin farklı şekilde bırakılması / hecelenmesi gerekebilir


1
Siz efendim, bunun beni ne kadar mutlu ettiğini bilmiyorsunuz :) Mükemmel!
josh.trow

@ josh.trow: Hayır, ama bana söylediğine sevindim :) Herzaman
sehe

@ Josh.trow'un zaten bulduğu gibi, WinSCP'de yerleşik bir tünelleme özelliği vardır (diğer cevaba bakın), eğer harici bir uygulama tarafından tünel kurulumunu kullanmanız gerekiyorsa, işte bir kılavuz: winscp.net/eng/docs/ guide_tunnel
Martin Prikryl

9

Bunu kabul edilen cevap olarak ayarlamayacağım, çünkü @sehe ve @Jakub olmadan asla bulamazdım, ama işte her şeyi basitleştiren şey buldum ...

WinSCP yerleşik bir SSH tüneli kullanma yeteneğine sahiptir. Bu özelliğin ne zaman geldiğini bilmiyorum, ama daha önce bir şekilde fark etmedim.

WinSCP Tüneli ayarları



filezilla da çalışıyor!
Hayden Thring

Bu özellik sadece tek tünele izin verir ... 2. tünel nasıl eklenir?
zeetit

@zeetit O zaman harici bir tünel kullanmalısınız. Tüm tünel açma seçenekleri, tünel açma hakkındaki WinSCP rehberinde belgelenmiştir .
Martin Prikryl

2

Önerilerimden biri, macun kullanarak bir çorap proxy'si oluşturmak (windows kutunuzdan) ve ardından SFTP istemcinizi bunun üzerinde proxy yapmak (Filezilla sftp diyelim) olacaktır.

Bu şekilde özel bir şey yapmanıza gerek yoktur, sadece macun çorapları5 proxy'nizi açın ve filezilla'yı açın ve dosyalarınızı hedef sunucuya gönderin.

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

Görünüşe göre farklı bir problem çözüyorsunuz, gerçekten daha zor bir problem. OP'nin problemi, son hedefin istemciden yönlendirilememesidir - giden SSH trafiği tamamdır. ( SSH trafiğini bir proxy üzerinden 'tünellemek' için çözümünüzün gerekli olduğuna inanıyorum? )
32'de sehe

@sehe .. ne? Bir SSH çorap 5 proxy (orta kutuya ssh tüneli) kurarsanız, SFTP trafiğinizi orta sunucu olarak maskelenerek hedef kutuya proxy olarak yerleştirirsiniz. Başka hangi sorunu çözüyorum?
Jakub
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.