1

Какую команду терминала я могу использовать для переноса каталога с удаленного компьютера (linux) на мой локальный компьютер (mac)? Самое главное, я хотел бы сделать это из командной строки, когда SSH подключен к удаленной машине. Я знаю, как использовать SCP в командной строке моего локального компьютера, но я понятия не имею, как бы я использовал его с удаленного компьютера (и каков был бы мой локальный путь).

3 ответа3

6

Запустите 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/
1

Вы также можете сделать наоборот, чтобы получить файл с удаленного компьютера на локальный компьютер,

ssh -L 2222:user@192.168.1.37:22 user@remoteserver.com -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, чтобы автоматизировать это.

0

Если вы локально находитесь за маршрутизатором / брандмауэром, который предоставляет вам частный IP-адрес, вам необходимо настроить маршрутизатор на NAT-порт для сопоставления с вашим локальным портом 22. Затем вы можете получить к нему доступ с удаленного компьютера, указав свой общедоступный IP-адрес на любом выбранном вами порту (вы можете напрямую сопоставить порт 22, но я обычно лично рекомендую избегать этого, поскольку стандартные порты сервера являются общими целями для вредоносных программ, пытающихся найти выход в ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .