Доступ к локальному репозиторию через jumpbox по SSH

Доступ к локальному репозиторию через jumpbox по SSH

У меня есть устройство, на котором установлен репозиторий 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 на Jumpbox, а не фактически транслируется для пересылки в локальный репозиторий.

Я пробовал разные варианты, но безуспешно, и мне нужно сделать это, чтобы обновить удаленный сервер.

решение1

Разве не достаточно:

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

Я правильно понимаю, что порт удаленного сервера доступен с хоста Jump?

РЕДАКТИРОВАТЬ: Насколько я понимаю, у вас есть некий локальный репозиторий, который вы хотите отобразить на удаленном хосте и использовать его.

Ну, обычно я использую это так: В ~/.ssh/config:

Host TargetServer
    Hostname remoteServer
    ProxyJump jumpbox

И теперь вы можете просто подключиться по SSH к своему удаленному серверу:

ssh TargetServer -R8880:localhost:80

Теперь вы вошли на целевой сервер. Вы можете проверить, открыт ли туннель:

netstat -lapn | grep 8880

И, конечно же, вы сможете сделать там yum-обновление.

ПРАВКА2: Если вы хотите использовать его в командной строке без файла конфигурации, используйте-Джвыключатель:

-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с машины, на которой установлен агент.

Конечно, ваш /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

Связанный контент