Я регулярно обнаруживаю желание скопировать файл из сеанса удаленного терминала на мою локальную машину. Обычно я выхожу из удаленного сеанса и вызываю передачу scp из локальной системы, чтобы скопировать файл из удаленной в локальную систему. Но это немного затянуто. Я хотел бы передать файл во время входа в систему через SSH, чтобы сэкономить время. Моя локальная машина подключена к Интернету с динамического диапазона IP-адресов, поэтому я не совсем уверен, как подключиться к нему удаленно. Но, разумеется, поскольку удаленный сеанс начинается с моего ноутбука, в scp должен быть ярлык, чтобы вернуться к моему ноутбуку ... Верно?
~C
escape. Просто введите<Enter>~C-R 12345:localhost:22<Enter>
, и вы получите свой туннель, не выходя из уже установленного сеанса SSH.Попробуйте выполнить следующие действия в командной строке с удаленного компьютера. Возможно, вам потребуется включить переадресацию портов на маршрутизаторе.
Источник: легко скопируйте файл обратно на хост, с которого вы подключаетесь (commandlinefu.com)
источник
${SSH_CLIENT%% *}
выведите IP своего локального компьютера. Таким образом, вся команда открывает сеанс scp с удаленного компьютера на локальный компьютер для передачи файлов. Это можно сделать только в том случае, если вы можете подключиться по SSH к локальному компьютеру с удаленного компьютера.export ME="${SSH_CLIENT%% *}"
в ваш rc-файл оболочки. Вы можете просто использоватьscp <file> $ME:<local path>
Может зсс ?
Он использует почтенные rz, sz реализации передачи файлов zmodem.
источник
Подняв этот вопрос, я бы тоже хотел, чтобы это было легко достигнуто .
Вот соответствующий ответ: Как мне SCP с удаленного компьютера на локальный компьютер, когда я нахожусь вне моей домашней сети?
источник
Одним из решений было бы приостановить сеанс ssh на локальном компьютере, выполнить копирование на локальном компьютере и затем возобновить сеанс ssh, на котором вы остановились.
Например, предположим, что я подключен к myuser @ remote и хочу скопировать файл lol.txt на мой локальный компьютер. Сначала я хочу приостановить SSH на моей локальной машине. Обычно вы используете Ctrl- Zдля приостановки, но это не сработает в ssh, потому что оно будет отправлено в удаленную оболочку. Вместо этого вы должны использовать escape-последовательность ssh Enter~. Чтобы приостановить ssh нажмите Enter~ Ctrl- Z. Теперь вы можете запускать команды на своем локальном компьютере, и можете делать
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
скопировать файл и затем вернуться в ssh именно там, где вы его оставили
user@localmachine:~$ fg
источник
Если вы хотите более простое решение, просто откройте аккаунт Dropbox, перейдите на удаленный компьютер и выполните wget (измененная версия здесь ):
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf
источник