5

Я пытаюсь скопировать файл (/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip) со своего удаленного хоста на рабочий стол моего локального компьютера (/Users/username/Desktop) с помощью команды scp.

Для этого я запускаю iTerm на своем Mac и использую следующую команду:

scp -r user@remotehost.com:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/

(Также стоит отметить, что я вошел в систему через ssh на моем удаленном хосте, когда пытаюсь выполнить эту команду.)

Когда я запускаю команду, мне предлагается ввести пароль для user@remotehost.com (что я и делаю), а затем я получаю следующее сообщение об ошибке:

/Users/username/Desktop: нет такого файла или каталога

Точно так же я не смог использовать scp для копирования файлов на мой удаленный хост.

Любая помощь в этом вопросе высоко ценится, и я надеюсь, что смогу получить простые / подробные объяснения, так как я совершенно новичок в использовании командной строки и ssh.

1 ответ1

4

scp не требует, чтобы вы использовали SSH к удаленному компьютеру, чтобы сделать копию (и именно здесь у вас сейчас проблемы с вашей командой).

scp по сути работает как в режиме push, так и в режиме pull. Вы можете передавать файлы / папки с локального компьютера на удаленный. Синтаксис команды для этого метода следующий:

scp /folderpath/tofile/file.txt user@remotehost:/folderpath/tocopyfileto/

Который предложит вам user пароль remotehost на удаленном хосте .

Вы также можете извлекать файлы / папки с удаленного компьютера на локальный компьютер. Синтаксис команды для этого метода следующий:

scp user@remotehost:/folderpath/tofile/file.txt /folderpath/tolocalfolder/

Который также попросит вас user пароль для remotehost на удаленном хосте .

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

Правильный способ запустить эту команду - запустить ее с локального компьютера.

scp -P 2222 user@remotehost.com:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/

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

** Я также добавил -P 2222 поскольку последующие комментарии от вас указали, что вам нужно использовать порт 2222 вместо стандартного порта 22.

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