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