Это происходит с удивительной частотой:
Я нахожусь на сервере или другом компьютере через ssh. Я хочу, чтобы scp или rsync некоторые файлы возвращались на мою клиентскую машину. Проблема в том, что я нахожусь за брандмауэром, и у меня нет порта, сопоставленного с портом 22 на моей машине.
Было бы здорово, если бы я мог каким-то образом указать псевдоним машины, с которой я подключен, в команде scp или rsync, например:
scp fileToBeTransferred LOCALMACHINE:~/temp/
Мой текущий процесс состоит в том, чтобы выполнить команду с моего локального компьютера (не в сеансе ssh). Было бы намного быстрее запустить команду scp с сервера, потому что я уже нахожусь в правильном каталоге, я могу использовать завершение файла, а мои учетные данные уже проверены.
Моя клиентская машина почти всегда - это Mac, на котором работает Mountain Lion, если это имеет значение.
вы можете добиться этого с помощью обратного туннеля к локальному ssh-порту
при подключении к удаленной машине добавьте обратный туннель с -Р вариант:
ssh -R 10000:127.0.0.1:22 remoteuser@remotemachine
теперь удаленный порт 10000 сопоставлен с вашим локальным портом 22, и вы можете передавать файлы из удаленного сеанса:
scp -P 10000 yourfile localuser@127.0.0.1:/path/to/target/