Я регулярно обнаруживаю, что хочу скопировать файл из сеанса удаленного терминала на свою локальную машину. Обычно я выхожу из удаленного сеанса и вызываю передачу scp от локального для копирования файла от удаленного до локального. Но это кажется немного затянутым. Я хочу передать файл при входе в пульт через SSH, чтобы сэкономить время. Моя локальная машина подключена к интернету из динамического диапазона IP, поэтому я никогда не знаю, как подключиться к ней удаленно. Но наверняка, как удаленный сессия происходит от моего ноутбука, должен быть ярлык в scp, чтобы вернуться к моему ноутбуку... Верно?
Можно ли SCP от удаленного к локальному в то время как вошли в удаленный и не зная IP-адрес локального?
6 ответов
можно использовать SSH туннелирование для этого.
использование туннелирования вы можете перенаправить TCP-порт с локального компьютера на удаленный компьютер или с удаленного компьютера на локальный. Я часто использую его для пересылки, например, портов SMTP или IMAP с удаленной машины за брандмауэром на мою локальную машину (а затем получить доступ к службам локально, как если бы они были запущены локально).
перенаправить порт 22 (SSH) с локального компьютера на удаленный машина попробуйте это:
ssh -R12345:localhost:22 yourremoteuser@remotemachine
(обратите внимание, что имя localhost ссылается на локальное имя удаленной машины)
после запуска этого вы должны быть в состоянии ssh вернуться домой с помощью:
ssh -p12345 yourlocaluser@127.0.0.1
при использовании scp, вы бы сделали что-то вроде (scp имеет заглавную P для переадресации портов):
scp -P12345 filename 127.0.0.1:/tmp/filename
переадресация портов в другом направлении (от удаленного к локальному) использует -L вместо-R.
вышеуказанные команды предполагают, что вы используете терминал ssh клиент. Графические клиенты, такие как PuTTY для Windows, также поддерживают туннелирование
попробуйте следующее в командную строку на удаленном компьютере, вам может понадобиться включить переадресацию портов на маршрутизаторе.
scp <file on remote machine> ${SSH_CLIENT%% *}:<directory on local machine>
источник: легко scp файл обратно к хосту вы подключаетесь от (commandlinefu.com)
может быть zssh?
zssh (ZMODEM SSH) - программа для интерактивной передачи файлов на удаленную машину при использовании secure shell (ssh). Он предназначен, чтобы быть удобной альтернативой scp, что позволяет передавать файлы без необходимости открывать другой сеанс и повторной аутентификации себя.
zssh-интерактивная оболочка для ssh
Он использует почтенные реализации RZ, sz файла zmodem передача.
поддержал этот вопрос, это то, что я хотел бы сделать легко Как хорошо.
вот связанный ответ:Как выполнить SCP с удаленного компьютера на локальный, когда я нахожусь за пределами домашней сети?
вы должны разрешить доступ к ssh извне вашей сети. Это делается путем перенаправления порта широкополосного маршрутизатора на IP-адрес локальной сети сервера. Однако есть некоторые проблемы безопасности с предоставлением SSH доступа извне, так что вы можете также хотите, чтобы посмотреть в методы для обеспечения ssh, в частности на основе ключа аутентификации и полностью отключить аутентификацию паролем.
одним из решений было бы приостановить сеанс ssh на локальном компьютере, выполнить копирование на локальном компьютере, а затем возобновить сеанс ssh, где вы остановились.
например, предположим, что я подключен к myuser@remote и я хочу, чтобы скопировать файл lol.txt на локальный компьютер. Сначала я хочу приостановить ssh на своей локальной машине. Обычно вы используете Ctrl -Z приостановить, но это не будет работать в ssh, потому что это будет отправляется в удаленную оболочку. Вместо этого необходимо использовать escape-последовательность ssh введите~. Поэтому для приостановки ssh нажмите введите~ 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
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]