重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

SSHで多段接続
これまでSSHを利用した接続で、ポート転送を利用した経験があるのですが、
踏み台を追加していくことは可能でしょうか。

以下の経験はあります。
【PC】--(ssh)--> 【踏み台Linux】--(ssh)--> 【Linux】
【PC】--(ssh)--> 【踏み台Linux】--(ターミナルサービス)--> 【Windows】

試したいのは具体的に以下です。
【PC】--(ssh)--> 【踏み台Linux】--(ssh)-->【踏み台Linux】--(http)-->【Linux】
【PC】--(ssh)--> 【踏み台Linux】--(ssh)-->【踏み台Linux】--(ftp)-->【Linux】

最終行き先へのプロトコルのレスポンスが欲しいです。
各接続間はIPによる制限がかかっています。

以上よろしくお願いします。

A 回答 (1件)

こんにちは。

ターミナルまたはプロンプトを2枚開いて、以下のsshコマンドをそれぞれで順番に実行し、ブラウザでhttp://localhost:2080を開くとどうなるでしょうか。sshserver1は最初に通過するSSHサーバ、sshserver2はウェブ・FTPサーバの側のSSHサーバです。

1)ssh -l (user1) -L 2022:sshserver2.example.com:22 sshserver1.example.com
2)ssh -l (user2) -p 2022 -L 2080:httpserver.example.com:80 localhost

お手元のコンピュータで1024以下のポートを開くには管理者権限が必要かもしれませんので、それ以上のポートをlocalhostに開くようにしています。まず2つ目のsshサーバまでトンネルを作成し、そのトンネル(localhost:2022/tcp)を通して2つ目のsshサーバにログインし、ウェブサーバまでトンネル(localhost:2080 -> httpserver.example.com:80)を作らせようとしています。これでウェブサーバにアクセスできると思います。

なお、ログイン先でシェルを開かなくてもいいのでしたら、

ssh -l (user1) -L 2022:sshserver2.example.com:22 -N sshserver1.example.com &

と"-N"を付ければバックグラウンドで動作するでしょう。

FTPサーバの場合、sshトンネル経由でPORTモードで接続するのは無理だと思います。また、PASVモードが可能だとして、データコネクション用PASVポートをサーバ側で(例えば5000/tcpとして)決め打ち指定できないと難しいでしょう。もしそれが可能でしたら、以下のようにトンネルを作成し、ftp://localhost:2021にアクセスしてみて下さい。

1)ssh -l (user1) -L 2022:sshserver2.example.com:22 sshserver1.example.com
2)ssh -l (user2) -p 2022 -L 2021:ftpserver.example.com:21 -L 5000:ftpserver.example.com:5000 localhost

そのFTPサーバでもsshサーバを動かしてもらい、ftpの代わりにscpを使うような方策も考えられます。リモート側での移動・削除などはシェルコマンドで行うことになります。

1)ssh -l (user1) -L 2022:sshserver2.example.com:22 sshserver1.example.com
2)ssh -l (user2) -p 2022 -L 3022:ftpserver.example.com:22 localhost
3)scpコマンドは(Linux/Unix等の場合):
  scp -P 3022 -v -C ./some.txt user@localhost:/home/user/some.txt (こちらからコピー)
  scp -P 3022 -v -C user@localhost:/home/user/some.txt ./some.txt (こちらへコピー)

http経由でサーバ上のファイルを操作するようなサーバソフトをFTPサーバにインストールして利用する方法もあります。この場合、FTPサーバのホスト向けにhttpアクセス用のSSHトンネルを作って操作できると思います。

http://webos-goodies.jp/archives/51040374.html
http://mizushima.ne.jp/Linux/Webmin/Webmin.php

ところで、「最終行き先へのプロトコルのレスポンス」と書かれていますが、具体的に何が必要なのか分りませんでした。ターミナル等のエラー出力でしょうか。

この回答への補足

ご返答遅れて申し訳ございません。
詳しい説明ありがとうございます…がCUI入力は苦手で、SSHコマンドを
勉強することから始めないと理解が難しいようです。

「最終行き先へのプロトコルのレスポンス」とは、
クライアント側でhttpであればブラウザ、ftpであればftpソフト(FFFTP等)を
使うことをイメージしていますので、それに必要なレスポンス、という意味です。

机上の想像の域なので、単純に「できるもんなの?」という疑問です。
とはいえ実状として、IP制限がかかっているので、どうにかして解決できないか
思案中です。

補足日時:2010/07/12 15:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!