передавать файлы с удаленного сервера на локальный через узел перехода, когда перенаправление портов запрещено административно

допустимая, но иногда мешающая политика в работе заключается в том, что порты удаленного сервера недоступны в пространстве пользователя.

Я нашел только следующие решения, которые (вероятно, поскольку я не пробовал их все) не будут работать.

  • Файлы Rsync через промежуточный хост
  • Как передать scp через два ssh

например, при использовании rsync с -e и ssh -J это приводит к

channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.2]

поэтому мне нужен способ, который не требует порта, а использует только stdin

1 ответ
1

решение, которое я обычно использую, это

ssh -ACq USER@JUMP-HOST 'ssh -ACq USER2@REMOTE-HOST "tar --warning=none -cC ~/DIRECTORY  ./FILES"' | tar -xv
  • подключение к хосту перехода, а затем к удаленному хосту
  • соединение облегчается с помощью ключей
  • сжатие tar не имеет смысла, потому что соединения уже сжаты
  • у меня работает (только для документации)

объяснение оболочки

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *