ダブルサーバーホップ上のSFTP


15

ローカルマシンからアクセスできないよりも、SFTPサーバー上のファイルにアクセスできるようにする方法を考えています。現在、リモートサーバー(最終的なSFTPサーバーが受け入れる特定のIPブロック内にある)にSSH接続し、そこからSFTPから宛先サーバーに接続する必要があります。そこから、get興味のあるファイルをミドルマンサーバーにドロップします。このサーバーから、Samba共有または直接のを使用してファイルを取得できますscp。また、逆の作業も行います。ファイルを仲介業者にドロップし、SSHに転送してから宛先にSFTP putし、適切なフォルダーに格納します。

私の目標はこれを短くすることです。残念な制限は、私のマシンがWindows(KiTTyやCygwinを使用)であり、ミドルマンサーバー(または宛先サーバー)を変更できないことです。コマンドラインまたはGUIプログラムが機能し、無料である限り、喜んで使用します。

何か案は?

回答:


24

本質的に、GUIやその他の便利な機能はありません。

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

デフォルトで〜/ .ssh / configの設定ファイルを編集することで、このデフォルトにすることができます

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

これにより、次のことが可能になります

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

もちろん、そのような魔法を使えば簡単にできます

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

Windowsでは、(IIRCと思う)PLINK(Puttyスイートから)に付属するWinSCPを使用します。ssh configファイルのデフォルトの場所は異なると思います(Googleで検索する必要があります)が、ほぼ同じように機能すると確信しています。

これが機能するために必要なncのは、中間サーバー(最初のホップ)の'netcat()' だけであることに注意してください。linux / UNIX [1]のユビキタスツールです。静的にリンクされたバージョンを構築するのは非常に簡単で、そもそもそこにコピーできれば機能します。

[1]いくつかのフレーバーがあるため、-wオプションを異なる方法でドロップ/スペルする必要があることに注意してください


1
あなたは、これが私をどれだけ幸せにしたかわからない:)パーフェクト!
josh.trow

@ josh.trow:いいえ、でも私に言ってくれてうれしいです:)いつでも
-sehe

@ josh.trowがすでに発見したように、WinSCPにはトンネリング機能が組み込まれていますが(他の回答を参照)、外部アプリケーションによるトンネル設定を実際に使用する必要がある場合は、ガイドwinscp.net/eng/docs/を
マーティンPrikryl

9

@seheと@Jakubがなければ見つけられなかったので、これを受け入れられた答えとして設定するつもりはありませんが、ここですべてを単純化することがわかりました...

WinSCPには、組み込みのSSHトンネルを使用する機能があります。この機能がいつ登場したかはわかりませんが、何とか気付くことはありませんでした。

WinSCPトンネル設定


トンネリング機能のドキュメント:winscp.net/eng/docs/tunnelingおよびwinscp.net/eng/docs/ui_login_tunnel
Martin Prikryl

filezillaでも動作します!
ヘイデンスリング

この機能は単一のトンネルのみを許可します... 2番目のトンネルを追加する方法は?
zeetit

@zeetitその後、外部トンネルを使用する必要があります。すべてのトンネリングオプションは、トンネリングに関するWinSCPガイドに記載されています。
マーティンプリクリル

2

私の提案の1つは、(windowsボックスから)puttyを使用してソックスプロキシを作成し、SFTPクライアントをプロキシします(Filezilla sftpなど)。

そのように特別なことをする必要はなく、パテsocks5プロキシをオンにし、filezillaをオンにして、ファイルを宛先サーバーにsftpします。

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

別の問題を解決しているようです。OPの問題は、最終的な宛先がクライアントからルーティングできないことです。アウトバウンドSSHトラフィックは問題ありません。(私はあなたのソリューションがプロキシを介して「トンネル」SSHトラフィックに必要とされていると考えている?
sehe

@sehe ..何?SSHソックス5プロキシ(ミドルボックスへのSSHトンネル)をセットアップし、SFTPトラフィックを宛先ボックスにプロキシするだけで、そこでミドルサーバーを装います。他にどのような問題を解決していますか?
ヤクブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.