1

Я вошел на удаленный сервер через SSH (Linux) или через замазку (Windows). Я хочу скопировать файл обратно на исходную машину из командной строки (из-за удобства). Я знаю, что могу запустить FileZilla или WinSCP на своем компьютере и копировать файлы, но я хотел бы узнать, как это сделать из командной строки.

Я знаю, что могу скопировать файлы через pscp, используя другую ссылку ssh:

pscp server.file localuser@local:/local_path

Но это невозможно использовать, если клиент не запускает сервер openssh.

Я вижу, что на моем сервере есть некоторые переменные, такие как SSH_CLIENT, SSH_CONNECTION и т.д. Можно ли использовать эту информацию для создания такой команды?

copy_from_server server.file local.file

Где server.file - это файл, расположенный на сервере (локально для приглашения bash, где запускается copy_from_server), а local.file - это место назначения на клиентском компьютере, куда следует скопировать файл.

Я хотел бы решение, которое работает для Windows и Linux, но я также открыт для решений, которые работают только на Linux или только на Windows.

РЕДАКТИРОВАТЬ: Подобные вопросы:

2 ответа2

3

Во время сеанса ssh (не PuTTY) нажмите Enter ~ C, чтобы ввести командную строку на локальном компьютере.

В оболочке вы можете запустить команду, поставив перед ней префикс !:

$ ssh> !scp <user@server:file> <local path>

Как только файл будет скопирован, командная строка завершится, и вы вернетесь в сеанс ssh без необходимости повторного ввода учетных данных.

Вам нужно PermitLocalCommand=yes в /etc/ssh_config (клиент), чтобы это работало.

0

Вы можете использовать rsync для этого. Ищите примеры команды rsync в интернете. Вот пример:

rsync -av -e ssh /var/www/your-site.com/ VPS_IP:/var/www/your-site.com/

Я нашел это, прочитав о миграции Wordpress по адресу: http://bit.ly/1pGp5cw

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