ポート22のみが許可されている場合は、ssh-tunnelを介してapt-get

ポート22のみが許可されている場合は、ssh-tunnelを介してapt-get

ポート22を介してのみ外部世界にアクセスできるサーバーがあります(サーバーから別のシステムとしてSSHを使用している場合)。

apt-getこのサーバーを介していくつかのパッケージをインストールしたいと思います。

すべてのポートからインターネットにアクセスできるスーパーマシンへのSSHトンネリングを介してこれを達成できますか?

それでは、どうすればいいですか?これは、SSHを介してスーパーマシンへのトンネルを開始すると、スーパーマシンのSSHDがポート22で待機するためです。トンネルに同じポート22を再利用できないとします。そうですか?

他の解決策がありますか?

答え1

sshocksプロキシを介して実行してみてください:

echo 'Acquire::socks::proxy "socks://localhost:3128/";' | sudo tee -a /etc/apt/apt.conf
ssh -CND localhost:3128 [email protected]

他の端末セッションで:

sudo apt-get whatever you need

答え2

他のものは救えません。回答働く

クライアントネットワークにRaspberry Piがあり、ポート80をブロックします。だから私のコンピュータにpolipo(ソックス/httpプロキシ)をインストールし、そのラズベリーパイからsshを介して接続し、polipo-proxyのトンネルを作成しました。

polipoをインストールするには(私はUbuntu 16.04システムで使用しています):

sudo apt install polipo

これは127.0.0.8123で実行され、これは私たちのニーズには十分です。トンネルを開いている間にリモートシステムに接続します。

ssh -R 8123:localhost:8123 myuser@client_maschine02

aptこれでプロキシを使用するように指示する必要があります。私はこのコマンドを使ってこれを行います。

echo 'Acquire::http::proxy "http://localhost:8123";' | sudo tee -a /etc/apt/apt.conf.d/proxy.conf

これで、いつものようにaptを使うことができます。

関連情報