使用 scp 将本地文件从 Windows 复制到远程服务器 [关闭]
Posted
技术标签:
【中文标题】使用 scp 将本地文件从 Windows 复制到远程服务器 [关闭]【英文标题】:Copying a local file from Windows to a remote server using scp [closed] 【发布时间】:2012-02-17 01:09:38 【问题描述】:所以,我试图通过 ssh 和 scp 将文件文件夹从本地计算机传输到服务器。 sudoing 后,我使用如下命令:
scp -r C:/desktop/myfolder/deployments/ user@host:/path/to/whereyouwant/thefile
我得到错误:
ssh: C: 名称或服务未知
我猜这是c:/desktop
等的语法。有什么想法吗?
顺便说一句,我正在使用 putty + Windows 7。
【问题讨论】:
windows/dos 上的标准路径说要使用\反斜杠,所以试试 C:\desktop\myfolder\deployments\ 所有非 GUI 解决方案都不适合我。我收到错误,fork:没有这样的文件或目录。我可以ssh
目的地,我可以dir
到源。
【参考方案1】:
如果你的盘符是C,你应该可以使用
scp -r \desktop\myfolder\deployments\ user@host:/path/to/whereyouwant/thefile
没有驱动器号和反斜杠而不是正斜杠。
你正在使用 putty,所以你可以使用pscp。它更适合Windows。
【讨论】:
scp -r root@31.222.168.64:/var/www/vhosts/mywork \test ---我添加了这段代码这是在我的服务器中创建一个测试文件夹 no 在我的本地计算机 scp - r root@31.222.168.64:/var/www/vhosts/mywork D:\test ---给出错误“ssh:无法解析主机名 D:名称或服务未知丢失连接” @pTi 您在使用哪个scp
?如果您使用的是 Cygwin 的scp
,则可以使用路径为/cygdrive/d/test
。要省略使用/cygdrive
,您可以运行mount --change-cygdrive-prefix /
,这样路径将改为/d/test
。
不确定它是特定于隧道还是特定于 Windows 10 中的 scp 版本,但我不得不使用语法(经过大量试验和错误): scp -P 驱动器号可以在目标中使用
scp some_file user@host:/c/temp
其中c
是驱动器号。它被视为一个目录。
也许这也适用于源代码。
【讨论】:
感谢这个 simple 和 working 答案,而不是试图让我使用其他软件或其他任何东西!我在网上搜索才发现,没有人直接回答这个问题...... 这无法获取文件 就我而言,user@host:/
是我的C:\
目录的根目录。所以如果我写user@host:/temp/
,就相当于C:\temp\
。我只能访问我的 C
驱动器,而不能访问其他驱动器。
@imans77,这可能有效,但如果您的驱动器号是 e:
,则不会 ;-) 我就是这种情况以及我是如何发现这一点的。【参考方案3】:
在 Windows 上,您可以使用winSCP 使用 scp 的图形界面。一个不错的免费软件,实现了SFTP protocol。
【讨论】:
效果很好!我必须选择 scp 协议才能成功连接。 好东西。非常感谢) 非常棒。它救了我的命!大声笑【参考方案4】:我看到这篇文章很老了,但是在我寻找这个问题的答案时,我无法从广阔的互联网高速公路上找到解决方案。因此,我希望我能为某人做出贡献和帮助,因为他们也发现自己在寻找答案时遇到困难。这个简单、自然的问题似乎在任何地方都没有记录。
在连接到 Windows 10 Pro 的 Windows 10 Pro 上,都运行 OpenSSH(Windows 版本 7.7p1,LibreSSL 2.6.5),我通过反复试验找到了解决方案。虽然出乎意料的简单,但还是花了一些时间。我发现所需的语法是
通过示例而不是更多晦涩和不完整的模板:
从远程系统安全地传输到本地系统:
scp user@remotehost:\D\mySrcCode\ProjectFooBar\somefile.cpp C:\myRepo\ProjectFooBar
或者反过来:
scp C:\myRepo\ProjectFooBar\somefile.cpp user@remotehost:\D\mySrcCode\ProjectFooBar
我还发现如果路径中有空格,引号应该在远程主机名之后开始:
scp user@remotehost:"\D\My Long Folder Name\somefile.cpp" C:\myRepo\SimplerNamerBro
另外,对于你的特殊情况,我附和 Cornel 所说的话:
在 Windows 上,至少在常规命令控制台中使用反斜杠。
亲切的问候。 火箭城电磁学
【讨论】:
【参考方案5】:你也可以试试这个:
scp -r /cygdrive/c/desktop/myfolder/deployments/ user@host:/path/to/whereyouwant/thefile
【讨论】:
只有在安装了 cygwin 并且在 cygwin shell 中运行或使用 cygwin 可执行文件时,此答案才有效。但这是一个适用于某些人的有效答案。【参考方案6】:我发现在 Windows 上使用图形界面是最简单的(我推荐 mobaXTerm 它有 ssh、scp、ftp、远程桌面等等)但是如果你是在命令行上设置的,我会推荐 cd'ing进入包含源文件夹的目录,然后 scp -r yourFolder username@server:/path/to/dir
-r
表示要在目录上使用递归
【讨论】:
下载了那个 mobaXTerm,结果发现它有病毒。搞砸了一些对我有好处的东西 @Damien 那么你没有从我提供的网站下载它【参考方案7】:驱动器号可以在源中使用
scp /c/path/to/file.txt user@server:/dir1/file.txt
【讨论】:
cp: cannot stat ‘/c/Users/xxx/Documents/rocket.chat/priv-key.ppk’: No such file or directory
'/drives/c/Users/xxx/Documents/rocket.chat/priv-key.pp" 将起作用以上是关于使用 scp 将本地文件从 Windows 复制到远程服务器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
我想要在Linux环境下远程从windows下载一个文件到本地,我使用ftp和scp都不好用,求大神指点。
将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上(scp的使用)