3 つの異なるネットワークに 3 台のマシンがあります。
家:
- インターネットに接続しているが、ローカル マシンには接続されていない、sudo あり。
仕事:
- WWWインターネット経由でSSHが利用可能
- 家SSH接続できる仕事、しかしその逆はない
- 仕事送信と受信の両方のSSHを実行できます
- 私は持っているいいえこのコンピュータでのsudoアクセス
- マシンには
iptables
インストールされていません
サーバ:
- サーバWWWインターネットに接続されています
- サーバSSH接続できる仕事、しかしその逆はない
- サーバ送信 ssh のみ実行できます。
- このコンピューターでは sudo アクセス権を持っています。
これで、ネットワークは以下を実行できるようになりました。
ホーム -> 職場 <- サーバー
この構成ではどうすれば家接続するサーバ? 3 台のマシンはすべて Ubuntu を実行しています。3 台のマシンすべてにコマンド ライン アクセスのみ可能です。
答え1
この ssh ソリューションでは sudo は必要ありません。
まず、サーバーのコマンド ラインで、WORK マシンから SERVER へのリモート ポート転送を設定します。
SERVER$ ssh -f -N -R 23456:SERVER:22 workuser@WORK
その後、そのプロセスが実行されている限り、次の操作を実行できるはずです。
HOME$ ssh -t workuser@WORK ssh -p23456 serveruser@localhost
つまり、HOME からは WORK を経由して、SSH トンネル経由で SERVER マシンに接続できるはずです。
:23456 を使用して、ssh が WORK マシンのすべてのインターフェースで listen するように指定できるはずですが、私の環境ではうまくいきませんでした。おそらく、GatewayPorts が無効になっているためです。うまくいけば、2 番目のコマンドは次のように簡略化できます。
HOME$ ssh -p23456 serveruser@WORK