Можно ли SCP от удаленного к локальному в то время как вошли в удаленный и не зная IP-адрес локального?

Я регулярно обнаруживаю, что хочу скопировать файл из сеанса удаленного терминала на свою локальную машину. Обычно я выхожу из удаленного сеанса и вызываю передачу scp от локального для копирования файла от удаленного до локального. Но это кажется немного затянутым. Я хочу передать файл при входе в пульт через SSH, чтобы сэкономить время. Моя локальная машина подключена к интернету из динамического диапазона IP, поэтому я никогда не знаю, как подключиться к ней удаленно. Но наверняка, как удаленный сессия происходит от моего ноутбука, должен быть ярлык в scp, чтобы вернуться к моему ноутбуку... Верно?

30
задан jnthnclrk
05.01.2023 10:56 Количество просмотров материала 2717
Распечатать страницу

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, также поддерживают туннелирование

20
отвечен Daniel Lundmark 2023-01-06 18:44

попробуйте следующее в командную строку на удаленном компьютере, вам может понадобиться включить переадресацию портов на маршрутизаторе.

scp <file on remote machine> ${SSH_CLIENT%% *}:<directory on local machine>

источник: легко scp файл обратно к хосту вы подключаетесь от (commandlinefu.com)

4
отвечен Patrick McLaren 2023-01-06 21:01

может быть zssh?

zssh (ZMODEM SSH) - программа для интерактивной передачи файлов на удаленную машину при использовании secure shell (ssh). Он предназначен, чтобы быть удобной альтернативой scp, что позволяет передавать файлы без необходимости открывать другой сеанс и повторной аутентификации себя.

zssh-интерактивная оболочка для ssh

Он использует почтенные реализации RZ, sz файла zmodem передача.

1
отвечен RedGrittyBrick 2023-01-06 23:18

поддержал этот вопрос, это то, что я хотел бы сделать легко Как хорошо.

вот связанный ответ:Как выполнить SCP с удаленного компьютера на локальный, когда я нахожусь за пределами домашней сети?

вы должны разрешить доступ к ssh извне вашей сети. Это делается путем перенаправления порта широкополосного маршрутизатора на IP-адрес локальной сети сервера. Однако есть некоторые проблемы безопасности с предоставлением SSH доступа извне, так что вы можете также хотите, чтобы посмотреть в методы для обеспечения ssh, в частности на основе ключа аутентификации и полностью отключить аутентификацию паролем.

1
отвечен Michal Stefanow 2023-01-07 01:35

одним из решений было бы приостановить сеанс 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

0
отвечен 2023-01-07 03:52

Если вы хотите более простое решение, просто откройте учетную запись dropbox, перейдите на удаленный компьютер и сделать wget (модифицированная версия от здесь): wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf

0
отвечен alex 2023-01-07 06:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх