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
これでターゲットサーバーにログインしました。トンネルが開いていることを確認できます。
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(...)を実行する」と言っていたので、あなたの質問を正しく理解したかどうかはわかりません。
ここでは、ローカルがリポジトリをホストし、リモートがリポジトリに接続したいとします。
両方のコマンドは次のとおりです。
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 ...
最後のエントリの場合は、ローカルにSSHエージェントがあるか、エージェントがssh -A
あるマシンでSSHエージェントに接続する必要があります。
もちろん、/etc/apt/sources.list
リモートファイルはlocalhost:8880を参照する必要があります。
答え3
このコマンドが役に立つと思いました。
ssh -L LOCAL_PORT:WEBSERVER:REMOTE_PORT -J jumpuser@JUMPHOST remoteuser@REMOTEHOST
引用:https://pillpall.github.io/linux/2018/02/06/sshscp_jumphost.html