質問: 開発用 サーバーBではIP制限をかけてあり、サーバーAからのみアクセス可能な状態としています。そして、サーバーAを経由してSFTPでファイルアップロードをする方法について調べています。 > > 案1 > > > サーバーAをポートフォワーディングする形。 これでできるのですが、コマンドラインの操作に慣れていない人がいるのでできればコマンドなしでやりたい。 > > 案2 > > > サーバーAにsquidを入れてプロキシ経由で接続する形。 できれば、案2でやりたいのですがこういうことはよくやるものなのでしょうか?また、セキュリティ的に懸念などはありますでしょうか?
回答: あらかじめ、ユーザーの.ssh/configに設定を書いていてもよければOpenSSHのNetCatモードを使う手もあるかと思います。 クライアントMacのユーザーディレクトリ以下に「.ssh/config」を以下の内容で作成します。 ``` Host ServerB ProxyCommand ssh ServerA -W ServerB:%p ``` ※ServerA、ServerBにはそれぞれのホスト名もしくはIPアドレス。 手元に環境がないので試せないのですが、上の設定を置いた状態で、FilezillaでServerBを指定すると接続できませんか? 追記02/04: 元の質問にある2つの案についても回答した方がいいですかね。 案1:ポートフォワードを利用する こちらの方法は一般的かなあと思います。 WindowsPCを使っている場合、WinSCPやTeraTermでもポートフォワードが使えますから。 ただ、Macの場合を検索してみたら、あらかじめSSHコマンドでポートフォワードする方法ばかりで、Windows環境よりは若干面倒そうな。 コマンド操作に慣れていない方が多い場合は厳しそうです。 思いつく方法としては、ポートフォワード用のスクリプト組んで配布しておき、ファイル転送前に実行させる手順でしょうか。 案2:プロキシサービス(Squidなど)を導入する 運用寄りの人間としては、あんまりこの方法は採りたくないです。 例えば結構な頻度でファイル転送するようなジョブを運用してるとかなら考えなくもないですが。 サーバーで稼働するサービスが増えれば「穴」が増える事にもなりますし。 追加したサービスによるサーバーの消費リソース増も気になるかも知れませんし。 障害対応や脆弱性対応など、いろんな手間も増えます。 作業のためだけであれば、最初の回答に書いたProxyCommandでSSHのNetCatモード、もしくはnc(netcat)コマンドを経由した接続の方がお手軽な気がします。