【问题标题】:scp from Linux to Windows: 'C:\Program' is not recognized errorscp 从 Linux 到 Windows: 'C:\Program' 无法识别错误
【发布时间】:2018-11-10 20:25:08
【问题描述】:

在我的 linux 机器中,我试图通过以下方式将文件发送到 Windows 机器:

scp fileNameA user@windowServer:fileNameA 

我收到以下消息:

'C:\Program' is not recognized as an internal or external command,

可运行的程序或批处理文件。

提示此消息的原因是什么?

我已经在 windows 机器上安装了 OpenSSH,我可以成功 SSH 进入它。我不想使用 WinSCP、FileZilla 等,因为我必须在脚本中自动执行此操作。这必须在 Linux 机器上完成,所以我对从 Windows 机器上做 pscp 不感兴趣。

【问题讨论】:

  • 我怀疑您将需要C:\\Program\\.. 来转义路径组件,以便\P 不会被视为文字'P' 等。如果不这样做,让我知道了,我会启动一台 Win10 机器并从 Linux 机器发送一些东西。
  • 我在 linux 上尝试了以下操作,但没有成功。 :( 目前,我并不关心具体的 Windows 目录。
  • 可能是Program Files 中的空间导致了问题。将所有文件名放在引号内。
  • 这是我的假设,但我没有将“程序文件”指定为任何地方的目录。我试图 scp 进入指定的目录(引号内),但没有奏效。另外,我检查了 PATH 变量,没有发现任何异常。
  • 也许你想给我们提供一段代码来调试?

标签: linux windows bash ssh scp


【解决方案1】:

我今天遇到了同样的问题。

我认为这是几天前发布的新版 OpenSSH 的问题。我恢复了以前的版本 (v7.6.1.0p1-Beta),它在我的虚拟机上从 https://github.com/PowerShell/Win32-OpenSSH/releases 正常工作,并且问题得到了修复,没有任何配置更改。

【讨论】:

    【解决方案2】:

    我刚刚通过将我的 OpenSSH 安装从 C:\Program Files\OpenSSH 移动到 C:\OpenSSH 来解决了同样的问题。

    我必须首先使用 Win32-OpenSSH 中提供的脚本正确卸载它,然后按照https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH 提供的信息返回,但只需将路径更改为 C:\OpenSSH。

    【讨论】:

      【解决方案3】:

      我今天遇到了类似的问题,试图将文件复制到运行 OpenSSH-Win64 的 Windows 服务器。我通过将推荐的安装位置C:\Program Files\OpenSSH 添加到 Windows 路径解决了这个问题:

      1. 打开控制面板,进入系统和安全部分并打开系统
      2. 单击高级系统设置,然后在“系统属性”对话框中单击环境变量
      3. 在对话框的系统变量部分,选择路径并点击编辑...
      4. 单击新建,添加 OpenSSH 文件夹路径并单击确定以应用更改。

      然后,不要忘记重新启动 OpenSSH 服务,无论是在服务管理控制台中还是在提升的控制台中运行 net stop sshd,然后运行 ​​net start sshd

      【讨论】:

        猜你喜欢
        • 2013-07-24
        • 1970-01-01
        • 2023-03-19
        • 2012-05-01
        • 2014-03-02
        • 2021-09-13
        • 2017-11-19
        • 2021-01-13
        相关资源
        最近更新 更多