Какую команду терминала можно использовать для передачи каталога с удаленного компьютера (Linux) на локальный компьютер (Mac)?Самое главное, я хотел бы сделать это из командной строки, подключившись по SSH к удаленной машине.Я знаю, как использовать SCP в командной строке локальной машины, но не имею ни малейшего представления, как использовать его с удаленной машины (и каков будет мой локальный путь).
решение1
Запустите sshd
на локальном компьютере, если вы еще этого не сделали. Затем запуститевторойсеанс с вашего локального компьютера на удаленный компьютер:
ssh -R 2222:127.0.0.1:22 user@remote
Это перенаправит удаленный порт 2222 на sshd
прослушиваемый порт 127.0.0.1 на вашем локальном компьютере, создав reverse tunnel
. Затем запустите scp
на удаленном компьютере:
scp -P2222 file 127.0.0.1:/path/
решение2
Вы также можете сделать наоборот, чтобы перенести файл с удаленного компьютера на локальный компьютер,
ssh -L 2222:[email protected]:22 [email protected] -N &
scp -P 2222 127.0.0.1:/path/to/file/on/remote/machine.diff /tmp
Команда ssh устанавливает туннель от localhost:2222 до удаленной машины 192.168.1.37 за сервером remoteserver.com, выходящим в сеть. Вторая команда позволяет вам скопировать его локально.
Некоторыйхорошие примеры и советы здесьи как настроить его в ~/.ssh/config для автоматизации.
решение3
Если вы локально находитесь за маршрутизатором/брандмауэром, который предоставляет вам частный IP-адрес, вам необходимо настроить маршрутизатор на преобразование сетевых адресов (NAT) порта для сопоставления с вашим локальным портом 22. Затем вы можете получить к нему доступ с удаленного компьютера, обратившись к своемупубличный IP-адресна любом выбранном вами порту (вы можете напрямую назначить порт 22, но я лично рекомендую избегать этого, поскольку стандартные порты сервера являются обычными целями для вредоносных программ, пытающихся проникнуть внутрь).