Назад | Перейти на главную страницу

копирование файла через 2 подключения?

Мне не нравится дважды называть scp.

Мне нужно подключиться к box1 через ssh снова к boxNAME. Как скопировать файл из boxNAME на локальный диск? также как мне скопировать файл с моего локального диска обратно в boxNAME?

в качестве альтернативы, если я могу взять файл (любой из них), вывести его и использовать в качестве стандартного ввода на другой стороне, это будет работать так же хорошо. (Файлы <4k и текстовые). Бонусный балл, если вы скажете мне, как создать текстовый документ и использовать stdout для записи и сохранения (помните, что это через 2 соединения, не локальных, и в этом случае я бы сделал файл cat >> out.txt)

Вы пробовали что-то подобное?

ssh user@host1 "ssh user@host2 'cat file.txt' " > local_file.txt

Я думаю, что самый простой способ - просто использовать переадресацию портов. Начните сеанс с промежуточным ящиком и перенаправьте некоторый порт, чтобы разрешить ssh-соединение с удаленным хостом. Затем просто используйте scp через свой порт вперед.

Если вам нужно делать это регулярно, вы можете создать конфигурацию ssh, использующую директиву ProxyCommand.

Host farhost
    ProxyCommand /usr/bin/ssh username@intermediate "/bin/netcat -w 1 farhost 22"
    User username

Учитывая что-то подобное, вы можете устанавливать соединения с удаленным хостом, как если бы он был подключен напрямую. Чтобы это работало наилучшим образом, вам нужно настроить аутентификацию на основе ключей.