SCP не работает при запуске с Linux на Windows машину.

Вопрос или проблема

У нас установлен и запущен OpenSsh на удаленном сервере Windows. Когда я подключаюсь к нему через удаленный рабочий стол и запускаю scp в командной строке, все доступные варианты команды scp отображаются.

Но когда я пытаюсь выполнить scp с моего Linux-машины на него, например, scp myuser@windows-machine:test.txt ., появляется следующая ошибка:

'scp.exe' не распознается как внутренняя или внешняя команда,
доступная программа или пакетный файл.

Я могу выполнять ssh, используя те же учетные данные пользователя, и после выполнения ssh, если я запускаю scp, все равно возникает такая же ошибка.

Может кто-то помочь, не пропустил ли я какую-то конфигурацию на удаленной машине Windows?

Спасибо,

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

Переработано благодаря комментариям Камиля

homedir@linuxhost$ scp myuser@windows-machine:test.txt .

Тем не менее, ваше сообщение об ошибке сгенерировано оболочкой Windows.

Это кажется неверным, если…… Вы запускаете PowerShell в качестве оболочки в вашей системе Linux

На моей системе Windows с установленным сервером OpenSSH есть 2 экземпляра scp.exe:

homedir@linuxhost ssh myuser@windows-machine where scp
C:\Windows\System32\OpenSSH\scp.exe
C:\Program Files\OpenSSH-Win64\scp.exe

Странно, но реальный исполняемый файл, используемый sshd, находится в “Program Files”. Возможно, (пере)установка функции OpenSSH-клиента решит вашу проблему.

Ответ или решение

Для решения проблемы с использованием scp для передачи файлов с Linux на Windows через OpenSSH, необходимо выполнить несколько шагов, чтобы убедиться, что всё настроено правильно.

1. Установите и настройте OpenSSH на Windows

Убедитесь, что вы установили OpenSSH на вашем удалённом Windows сервере. Сделать это можно через "Настройки" -> "Приложения" -> "Дополнительные функции" -> "Добавить функцию" и установив OpenSSH Server.

2. Проверьте доступность scp.exe

Когда вы подключены к Windows через удалённый рабочий стол, проверьте, существуют ли исполняемые файлы scp.exe в системе. Введите команду:

where scp

Это должно показать пути к исполняемым файлам scp.exe, которые могут выглядеть приблизительно так:

C:\Windows\System32\OpenSSH\scp.exe
C:\Program Files\OpenSSH-Win64\scp.exe

Убедитесь, что путь к scp.exe, который используется, совпадает с тем, что доступно вашей SSH-сессии.

3. Убедитесь, что правильно настроены переменные среды

Проверьте, что папка, в которой находится scp.exe, включена в системную переменную PATH. Это делается следующим образом:

  • Щёлкните правой кнопкой мыши на "Компьютер" или "Этот ПК" на рабочем столе и выберите "Свойства".
  • Перейдите в "Дополнительные параметры системы".
  • В разделе "Переменные среды" найдите переменную PATH и убедитесь, что путь к OpenSSH добавлен.

4. Проверка прав доступа

Убедитесь, что у пользователя, под которым вы входите, есть необходимые права для выполнения команд и доступа к файлам. Попробуйте запустить команду scp с запущенной командной строкой с правами администратора.

5. Попробуйте передать файл через SSH

Если вы можете выполнить команду SSH, но команда scp не работает, вы можете передать файл после подключения по SSH. Это можно сделать, используя следующее:

ssh myuser@windows-machine 'powershell -command "Get-Content C:\path\to\test.txt"' > test.txt

Эта команда считывает файл на Windows и передаёт его на вашу Linux-машину.

6. Переустановка OpenSSH

Если все вышеуказанные шаги не помогли, возможно, стоит попробовать переустановить OpenSSH на Windows. Убедитесь, что вы выбрали как клиент, так и сервер при установке.

7. Логи и диагностика

Если проблема не устраняется, проверьте логи OpenSSH-сервера на Windows. Это может дать больше информации о том, что именно происходит, когда вы пытаетесь использовать scp.

Заключение

Следуйте этим шагам, и это должно помочь решить проблему с передачей файлов с Linux на Windows с использованием scp. Если проблема сохраняется, возможно, стоит обратиться к системному администратору для более глубокой диагностики.

Оцените материал
Добавить комментарий

Капча загружается...