SSH Linux (OpenSSH)

SSH в Linux: SSH: scp не копирует файл из пути с пробелами в имени

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

SCP не копирует файл, если в локальном или удалённом пути есть пробелы. Важно учитывать, с какой стороны путь и какая версия OpenSSH: современные scp обычно используют протокол SFTP, старые режимы иначе интерпретируют кавычки.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

Команда scp отвечает No such file or directory либо разбивает имя файла на части при передаче через shell. Проблема не обязательно связана с разрешениями или авторизацией.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Не заключён локальный путь в кавычкиЛокальная оболочка разделяет имя по пробелам.scp пытается прочесть первый фрагмент названия.Кавычки вокруг локального пути.
Удалённый путь разобран иначеСтарый scp использует удалённую оболочку, современный — SFTP.На другом компьютере тот же синтаксис работает иначе.Уточнить режим и безопасно использовать sftp.
Отсутствует каталог назначенияИмя задано верно, но папки реально нет.После входа по sftp ls не показывает путь.Проверить существование папки, не создавать от root вслепую.

#Пошаговая диагностика и исправление

  1. Определите сторону пути с пробеламиОткройте терминал и найдите локальный файл через файловый менеджер. При копировании путь можно получить действием «Копировать как путь», если оно есть, либо вручную. Не используйте дополнительные символы вокруг названия самого файла, если они являются частью имени.
  2. Убедитесь, что файл существует локальноВыполните ls -l "Мой файл.txt" в папке, где расположен документ. Кавычки нужны, чтобы оболочка не разделила имя. Если файл не найден, откройте в терминале нужный каталог через cd с кавычками либо используйте полный путь.
  3. Уточните версию scpВыполните ssh -V: версия OpenSSH поможет понять поддержку SFTP. В актуальных версиях scp обычно работает через SFTP; в старых, использующих удалённую оболочку, нужны дополнительные уровни кавычек и экранирования.
  4. Проверьте доступ к серверу отдельноВыполните sftp пользователь@сервер с реальным адресом. После авторизации можно использовать pwd, ls, cd для удалённой стороны и lpwd, lls, lcd для локальной. Не начинайте с записи в системный каталог.
  5. Передайте файл через SFTP с кавычкамиВ интерактивном sftp перейдите в проверенную удалённую папку командой cd "Папка с пробелами" и в локальную папку lcd "Локальная папка"; затем используйте put "Мой файл.txt". Путь в кавычках должен совпадать с реальным именем. Команда put перезапишет одноимённый файл на сервере, поэтому заранее проверьте ls и выберите безопасное имя для теста.
  6. Если нужен именно scp, начните с современного синтаксисаДля локального файла в текущем каталоге можно попробовать scp "Мой файл.txt" "пользователь@сервер:каталог с пробелами/", заменив адрес и каталог. Не применяйте -O автоматически: принудительный старый SCP-протокол иначе трактует кавычки и часто запрещён правилами безопасности.
  7. Проверьте файл и при ошибке вернитесь к sftpНа удалённой стороне выполните ls в каталоге назначения, сравните имя и размер; при необходимости сверьте контрольную сумму SHA256 на обеих машинах. Если scp не справился, используйте SFTP с проверенными путями вместо изменения прав всей папки.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)Команда
Проверка локального файла в текущем каталоге, замените название.
ls -l "Мой файл.txt"
Linux · Терминал (Bash)Команда
Интерактивная передача с отдельной обработкой пробелов в путях.
sftp пользователь@сервер
Linux · Терминал (Bash)С осторожностью
Пример для современного SCP/SFTP, заменить файл и назначение.
scp "Мой файл.txt" "пользователь@сервер:каталог с пробелами/"

Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Как проверить результат

Файл с пробелами в имени появляется в нужном каталоге без переименования и совпадает по размеру/контрольной сумме; другие файлы не перезаписаны.

#Если проблема не устранена

Если в современном scp копирование всё равно не работает, проверьте SFTP-подсистему и права только целевого каталога у администратора. Не отключайте защиту SSH для устранения кавычек.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.