使用scp将本地文件从Windows复制到远程服务器

使用scp将本地文件从Windows复制到远程服务器,windows,ssh,copy,sudo,scp,Windows,Ssh,Copy,Sudo,Scp,所以,我试图简单地通过ssh和scp将文件文件夹从本地计算机传输到服务器。sudo之后,我将使用以下命令: scp -r C:/desktop/myfolder/deployments/ user@host:/path/to/whereyouwant/thefile 我得到一个错误: ssh:C:名称或服务未知 我在猜我的c:/desktop等的语法。有什么想法吗 顺便说一句,我正在使用putty+Windows7。如果您的驱动器号是C,您应该能够使用 scp-r\desktop\myfold

所以,我试图简单地通过ssh和scp将文件文件夹从本地计算机传输到服务器。sudo之后,我将使用以下命令:

scp -r C:/desktop/myfolder/deployments/ user@host:/path/to/whereyouwant/thefile
我得到一个错误:

ssh:C:名称或服务未知

我在猜我的
c:/desktop
等的语法。有什么想法吗


顺便说一句,我正在使用putty+Windows7。

如果您的驱动器号是C,您应该能够使用

scp-r\desktop\myfolder\deployments\user@host:/path/to/whereyouwant/thefile

没有驱动器号和反斜杠,而不是正斜杠


你用的是油灰,所以你可以用。它更适合Windows。

在Windows上,您可以使用scp的图形界面。这是一款很好的免费软件,可以实现。

您也可以尝试以下方法:

scp -r /cygdrive/c/desktop/myfolder/deployments/ user@host:/path/to/whereyouwant/thefile

驱动器号可以在目标中使用,如

scp some_file user@host:/c/temp
其中
c
是驱动器号。它被当作一个目录


也许这也适用于源代码。

我发现在windows上使用图形界面最简单(我建议它有ssh、scp、ftp、远程桌面和更多),但如果您设置在命令行上,我建议将cd放入带有源文件夹的目录中,然后
scp-r文件夹username@server:/path/to/dir


-r
表示要在目录上使用递归

驱动器号可以在源代码中使用,如

scp /c/path/to/file.txt user@server:/dir1/file.txt

我看到这篇文章很古老,但在我寻找这个问题的答案时,我无法从浩瀚的互联网高速公路上找到解决方案。一、 因此,我希望我能帮助一些人,因为他们也发现自己在寻找答案时遇到了困难。这个简单、自然的问题似乎在任何地方都没有记录

在连接到Windows10Pro的Windows10Pro上,都运行OpenSSH(WindowsVersion7.7p1,Libressl2.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
另外,对于你的特殊情况,我赞同康奈尔的说法:

在Windows上,至少在常规命令控制台上使用反斜杠

亲切的问候。
RocketCityElectromagnetics

windows/dos上的标准路径要求使用\反斜杠,因此请尝试C:\desktop\myfolder\deployments\非GUI解决方案中的任何一种都不适合我。我得到一个错误,fork:没有这样的文件或目录。我可以
ssh
到目的地,我可以
dir
到源代码。效果很好!我必须选择scp协议才能成功连接。太好了。非常感谢)非常好。它救了我的命!谢谢你这个简单有效的答案,不是想让我使用其他软件或其他什么!我在网上搜索只是为了发现,没有人直接回答这个问题……在我的情况下,这无法获取文件,
user@host:/
是我的
C:\
目录的根目录。所以如果我写
user@host:/temp/
,它相当于
C:\temp\
。我只能访问我的
C
驱动器,不能访问其他驱动器。@imans77,这可能有效,但如果您的驱动器号是
e:
则无效;-)我就是这样发现的。只有在安装了cygwin并且运行在cygwin shell或使用cygwin可执行文件的情况下,这个答案才有效。但这是一个对某些人有效的答案root@31.222.168.64:/var/www/vhosts/mywork\test--我添加了这段代码这是在我的服务器中创建一个测试文件夹,在我的本地计算机scp-r中root@31.222.168.64:/var/www/vhosts/mywork D:\test---给出错误“ssh:无法解析主机名D:名称或服务未知连接丢失“@pTi您使用的是哪个
scp
?如果您正在使用Cygwin的
scp
,则可以使用路径
/cygdrive/d/test
。要省略使用
/cygdrive
可以运行
mount——更改cygdrive前缀
,使路径改为
/d/test
。不确定它是否特定于隧道或Windows 10中的scp版本,但我不得不使用语法(经过大量尝试和错误):scp-P-r./localdiruser@host:“D:\remotedir”
cp:cannot stat'/c/Users/xxx/Documents/rocket.chat/priv-key.ppk':没有这样的文件或目录
“/drives/c/Users/xxx/Documents/rocket.chat/priv-key.pp”将下载该mobaXTerm,并证明它有病毒。为我搞乱了一些东西good@Damien那你不是从我提供的网站下载的