Как исправить ошибку «Нет такого файла или каталога» в SCP?

SCP означает протокол безопасного копирования и основан на протоколе «Secure Shell». Он предоставляет метод передачи файлов между компьютерами. В этой передаче либо оба компьютера могут быть удаленными хостами, либо один компьютер может быть локальным, а другой - удаленным. Совсем недавно многие пользователи получали ошибку « Нет такого файла или каталога » при попытке скопировать файлы с помощью SCP.

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

Что вызывает ошибку «Нет такого файла или каталога» в SCP?

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

  • Неверная команда:  в некоторых случаях команда, используемая пользователем для копирования файла, может быть неверной. Вы должны изменить команду копирования, чтобы она соответствовала текущей ситуации, в которой вы копируете. Команды для копирования файлов и всего каталога разные. Кроме того, в соответствии с требованиями изменяется команда копирования между двумя компьютерами с разными конфигурациями.
  • Номер порта:  также возможно, что номер порта для копирования файлов между компьютерами не был указан. Перед попыткой копирования файлов между двумя хостами необходимо перенаправить правильный порт.
  • Неправильный вход : если вы в настоящее время вошли на сервер и пытаетесь скопировать файлы на рабочий стол, вы можете столкнуться с этой ошибкой, потому что сервер пытается найти локальный путь на сервере. Этого можно избежать, выйдя из серверного пути.
  • Права доступа к файлам в некоторых случаях права доступа к файлам, которые должны быть скопированы, могут быть ограничены «только для чтения». Это может помешать серверу получить доступ к файлам и не сможет их скопировать. Важно, чтобы для файлов были предоставлены права на чтение и запись.

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

Решение 1. Использование правильных команд

Вы должны использовать правильную команду в зависимости от конфигурации хостов, между которыми вы хотите передавать файлы. Для этого мы перечислим некоторые команды, которые можно использовать для передачи файлов между различными конфигурациями хоста.

Для копирования с локального хоста на удаленный хост

Localhost - это настоящий компьютер, к которому у вас есть физический доступ. Удаленный хост - это тот, к которому у пользователя нет физического доступа, и он расположен на удаленном сервере. Чтобы передать файлы с локального хоста на удаленный, вы должны использовать следующие конфигурации команд.

$ scp "the_file" ваше_имя_пользователя @ the_remote_host: / путь / к / каталогу /

Пример копирования текстового файла с именем « Alexa.txt » будет следующим.

$ scp Alexa.txt [email protected]: / some / remote / directory

Таким же образом вы можете скопировать весь каталог следующим образом

$ scp -r "the_directory_to_copy" ваше_имя_пользователя @ the_remote_host: / путь / к / каталогу / к / копировать / в

Пример копирования каталога с именем « Alexa » будет следующим.

$ scp -r foo ваше_имя_пользователя@remotehost.edu: / некоторые / удаленный / каталог / бар

Для копирования с удаленного хоста на локальный хост

Если вы хотите скопировать файл с удаленного хоста на локальный хост, конфигурации команд отличаются от исходных. Ниже указаны соответствующие команды для копирования файлов между удаленным хостом и локальным хостом.

Чтобы скопировать файл, используйте следующую команду

$ scp ваше_имя_пользователя @ the_remote_host: the_file / your / local / directory

Чтобы скопировать файл с именем « Alexa . txt », используйте следующие команды

$ scp ваше_имя_пользователя @ the_remote_host: Alexa.txt / your / local / directory

Решение 2. Определение номера порта

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

Вы можете использовать следующую команду для копирования между компьютерами, указывая номер порта .

$ scp -P номер_порта ваше_имя_пользователя @ the_remote_host: the_file / your / local / directory

Эту же команду можно использовать для указания номера порта при копировании на удаленный хост или с него. Вам просто нужно добавить « -P (номер порта) » после части команды « $ scp ».

Решение 3: изменение разрешений

Соответствующие разрешения должны быть предоставлены файлу при их копировании между компьютерами. Поэтому на этом этапе мы будем указывать процесс изменения разрешений для файла. Для этого:

  1. Право - нажмите на файл , который вы пытаетесь скопировать.
  2. Щелкните « Свойства » и выберите вкладку « Безопасность ».
  3. Убедитесь, что все разрешения предоставлены « Системе » и « Администратору ».

Примечание.  Также убедитесь, что вы не входите в систему по пути к серверу при копировании файлов.