![scp 导致“‘C:\ Program’ 未被识别为内部……”](https://linux22.com/image/1562625/scp%20%E5%AF%BC%E8%87%B4%E2%80%9C%E2%80%98C%3A%5C%20Program%E2%80%99%20%E6%9C%AA%E8%A2%AB%E8%AF%86%E5%88%AB%E4%B8%BA%E5%86%85%E9%83%A8%E2%80%A6%E2%80%A6%E2%80%9D.png)
我正在尝试scp
使用以下命令将文件从本地计算机传输到远程计算机:
scp "local/file/path/file.txt" [email protected]:"remote/file/path"
输入远程用户密码后,出现以下错误信息:
'C:\Program' is not recognized as an internal or external command, operable program or batch file. lost connection
没有任何明显的原因会导致此错误。没有文件路径包含“C:\Program”。这个类似的问题没有帮助。我能够成功通过 ssh 进入远程机器。
我想避免使用 Filezilla、WinSCP 或类似的程序;此命令需要进入脚本。
什么原因可能导致这个错误?
编辑:
命令是
scp "home/c/users/administrator/desktop/test.txt" administrator@defaultserver:"home/c/users/administrator/desktop"
编辑2:
似乎在考虑任何文件路径之前就抛出了错误。运行调试器会在错误发生之前产生以下消息:
debug1: Sending command: scp -v -t /tmp
我下载了 OpenSSH 作为我的 SSH 服务器。我将其解压到 ~/Program Files/,这似乎是该目录唯一相关的实例。也许更改 SSH 服务器的安装位置会更改此错误。
答案1
答案2
我今天遇到了类似的问题,试图将文件复制到运行OpenSSH-Win64C:\Program Files\OpenSSH
。我通过将推荐的安装位置添加到 Windows 路径来解决问题:
- 打开控制面板,转到系统和安全部分并打开系统。
- 点击高级系统设置然后在系统属性对话框中单击环境变量。
- 在里面系统变量对话框中,选择小路并点击编辑...。
- 点击新的,添加 OpenSSH 文件夹路径并点击好的应用更改。
然后,不要忘记重新启动 OpenSSH 服务,可以在服务管理控制台中,也可以通过运行net stop sshd
,然后net start sshd
在提升的控制台中运行。