web-dev-qa-db-ja.com

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

ポート22を介して外部にアクセスするだけのサーバーがあります(サーバーから他のコンピューターへのsshの使用のため)。

このサーバーにapt-get経由でいくつかのパッケージをインストールしたい。

すべてのポートでインターネットにアクセスできるスーパーマシンにsshトンネルでこれを実現できますか?

もしそうなら、どうですか?スーパーマシンへのssh経由でトンネルを開始すると、スーパーマシンのsshdがポート22で待機するためです。トンネリングにこの同じポート22を再利用できないと思いますか?

別の解決策はありますか?

7
erik

Ssh socksプロキシ経由で実行してみてください:

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
9
rush

他の answer を動作させることができませんでした。

ポート80をブロックする顧客のネットワークにRaspberry Piがあります。そのため、自分のマシンにpolipo(socks/httpプロキシ)をインストールし、そのRaspberry Piの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を使用する準備が整いました。

0
MadMike