Zugriff auf das lokale Repository über die Jumpbox mit SSH

Zugriff auf das lokale Repository über die Jumpbox mit SSH

Ich habe ein Gerät, auf dem ein apt-get-Repository installiert ist. Normalerweise verwende ich den folgenden Befehl, um es so einzurichten, dass ich apt-getvon einem Remote-Server darauf zugreifen kann.

ssh user@IPofRemoteServer -R8880:127.0.0.1:8880

Hierzu ist jedoch erforderlich, dass die lokale Repository-Appliance über eine Verbindung zum Remote-Server verfügt.

Ich muss folgendes tun:

local repo ---> jumpbox ---> remote server

So kann ich es apt-get updateerfolgreich vom lokalen Repo aus ausführen.

Ich habe Folgendes versucht, jedoch ohne Erfolg:

ssh -A -t user@jumpbox -R8880:127.0.0.1:80 ssh -A -t user@remoteServer -R8880:127.0.0.1:80

Dies funktioniert jedoch nicht und nach eingehender Untersuchung bin ich zu dem Schluss gekommen, dass dies daran liegt, dass Port 8880 auf der Jumpbox einfach auf 80 geht und nicht tatsächlich übersetzt wird, um ihn an das lokale Repo weiterzuleiten.

Ich habe verschiedene Varianten erfolglos ausprobiert und muss dies tun, um den Remote-Server zu aktualisieren.

Antwort1

Ist es nicht ausreichend:

ssh -A -t user@jumpbox -R8880:remoteServer:80

Ich verstehe, dass der Port des Remote-Servers vom Jump-Host aus zugänglich ist?

BEARBEITEN: Jetzt verstehe ich, dass Sie ein lokales Repository haben, das Sie auf einem Remote-Host anzeigen und verwenden möchten.

Normalerweise verwende ich es so: In ~/.ssh/config:

Host TargetServer
    Hostname remoteServer
    ProxyJump jumpbox

Und jetzt können Sie einfach eine SSH-Verbindung zu Ihrem Remote-Server herstellen:

ssh TargetServer -R8880:localhost:80

Sie sind nun bei Ihrem Zielserver angemeldet. Sie können überprüfen, ob der Tunnel geöffnet ist:

netstat -lapn | grep 8880

Und natürlich sollten Sie dort ein Yum-Update durchführen können.

EDIT2: Wenn Sie es auf der Kommandozeile ohne Konfigurationsdatei verwenden möchten, verwenden Sie-Jschalten:

-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.

Antwort2

Ich bin nicht sicher, ob ich Ihre Frage richtig verstanden habe, da Sie sagen, Sie möchten „apt-get (...) von einem Remote-Server“ und auch „apt-get update (...) vom lokalen Repo ausführen“.

Hier gehe ich davon aus, dass das Repository lokal gehostet wird und die Remote-Verbindung eine Verbindung damit herstellen möchte.

Entweder zwei Befehle wie diese:

local$   ssh -R 54321:localhost:8880 user@jumpbox
jumpbox$ ssh -R 8880:localhost:54321 user@remote
remote$  apt-get ...

Entweder einfach:

local$  ssh -tAR 54321:localhost:8880 user@jumpbox ssh -R 8880:localhost:54321 user@remote
remote$ apt-get ...

Für Letzteres benötigen Sie einen lokalen SSH-Agenten oder Sie müssen ssh -Avon einem Computer aus, der über einen Agenten verfügt, damit verbunden sein.

Natürlich /etc/apt/sources.listmüsste Ihre Datei auf dem Remote-Speicherort einen Verweis auf localhost:8880 enthalten.

Antwort3

Ich fand diesen Befehl nützlich:

ssh -L LOCAL_PORT:WEBSERVER:REMOTE_PORT -J jumpuser@JUMPHOST remoteuser@REMOTEHOST

Referenz:https://pillpall.github.io/linux/2018/02/06/sshscp_jumphost.html

verwandte Informationen