apt-get リポジトリがインストールされたアプライアンスがあります。通常は次のコマンドを使用して、apt-get
リモート サーバーからアクセスできるようにします。
ssh user@IPofRemoteServer -R8880:127.0.0.1:8880
ただし、そのためには、ローカル リポジトリ アプライアンスがリモート サーバーに接続されている必要があります。
次のことを行う必要があります:
local repo ---> jumpbox ---> remote server
apt-get update
したがって、ローカル リポジトリから正常に実行できます。
これを実現するために次のことを試しましたが、成功しませんでした。
ssh -A -t user@jumpbox -R8880:127.0.0.1:80 ssh -A -t user@remoteServer -R8880:127.0.0.1:80
しかし、これは機能せず、調査したところ、ポート 8880 がジャンプボックスの 80 に送られるだけで、実際にはローカル リポジトリに転送するように変換されていないことが原因であると思われます。
さまざまなバリエーションを試しましたが成功しませんでした。リモート サーバーを更新するには、これを実行する必要があります。
答え1
: 十分ではないでしょうか:
ssh -A -t user@jumpbox -R8880:remoteServer:80
リモート サーバーのポートはジャンプ ホストからアクセスできると理解していますか?
編集: さて、リモート ホストに表示して使用したいローカル リポジトリがいくつかあることを理解しました。
まあ、通常は次のように使用します: ~/.ssh/config 内:
Host TargetServer
Hostname remoteServer
ProxyJump jumpbox
これで、リモート サーバーに SSH 接続するだけです。
ssh TargetServer -R8880:localhost:80
これでターゲット サーバーにログインできました。Tunel が開いているかどうかを確認できます。
netstat -lapn | grep 8880
もちろん、そこで yum アップデートを行うことができるはずです。
編集2: 設定ファイルなしでコマンドラインで使用したい場合は、-Jスイッチ:
-J [user@] host [:port]
Connect to the target host by first making a ssh connection to the jump host and then establishing a
TCP forwarding to the ultimate destination from there. Multiple jump hops may be specified sepa‐
rated by comma characters. This is a shortcut to specify a ProxyJump configuration directive.
答え2
「リモート サーバーから apt-get (...) を実行する」ことと、「ローカル リポジトリから apt-get update (...) を実行する」ことを希望しているとおっしゃっているので、質問を正しく理解できたかどうかわかりません。
ここでは、ローカルがリポジトリをホストしており、リモートがそれに接続したいと想定します。
次のような 2 つのコマンドのいずれか:
local$ ssh -R 54321:localhost:8880 user@jumpbox
jumpbox$ ssh -R 8880:localhost:54321 user@remote
remote$ apt-get ...
どちらか一方:
local$ ssh -tAR 54321:localhost:8880 user@jumpbox ssh -R 8880:localhost:54321 user@remote
remote$ apt-get ...
最後の 1 つでは、ローカルに ssh-agent が必要であるか、ssh -A
エージェントを持つマシンからそれに接続する必要があります。
もちろん、/etc/apt/sources.list
リモート上のファイルには localhost:8880 への参照が必要です。
答え3
このコマンドは便利だと思いました:
ssh -L LOCAL_PORT:WEBSERVER:REMOTE_PORT -J jumpuser@JUMPHOST remoteuser@REMOTEHOST
参照:参考: