通过SSH传输文件[关闭]


461

我正在通过命令行SSH进入远程服务器,并尝试使用该scp命令将目录复制到本地计算机上。但是,远程服务器返回此“使用”消息:

[Stewart:console/ebooks/discostat] jmm% scp -p ./styles/
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 [...] [[user@]host2:]file2
[Stewart:console/ebooks/discostat] jmm%

我希望能够双向传输文件。从我阅读的内容来看,我认为上述命令适用于下载和scp -p [localpath] [remotepath]上传?

Answers:


733

您需要在scp某处。您拥有scp ./styles/,所以您说的是安全副本./styles/,但没有复制到何处。

通常,如果要下载,它将运行:

# download: remote -> local
scp user@remote_host:remote_file local_file 

在那里local_file,实际上可能是把你复制的文件的目录上载,这是相反的:

# upload: local -> remote
scp local_file user@remote_host:remote_file

如果要复制整个目录,则需要-r。可以将其scp视为cp,除了可以指定一个文件user@remote_host:file以及本地文件外。

编辑:如注释中所述,如果本地主机和远程主机上的用户名相同,则在指定远程文件时可以忽略该用户。


2
请注意,如果远程主机和本地主机上的用户相同,则可以省略用户名:scp hello.c myserver.net:~/projects/
strager

是的,是的,我会添加一条注释。我包括了该用户,因为这样我给出的示例将始终有效。:)
lemnisca,

我对此很难受..这是正确的。scp C:\ filename.txt server1 @ server2:home
Vincent

请在“ donload”和“ upload”上添加粗体格式。
kursus 2014年

2
“自然地”(我自然地说是因为我在这上面浪费了15分钟),在尝试“下载”到本地时不应连接到远程主机,因为如果您从远程实例执行代码,则“本地”会如果您理解我的意思,则被解释为“远程”。所以不要先运行ssh。
PatrickT 2014年

164

如果要复制到台式机或从台式机复制,请使用WinSCP,或者如果在Linux上,Nautilus通过“连接到服务器”选项支持SCP。

scp只能将文件复制到运行sshd的计算机上,因此您需要从运行scp的计算机上的远程计算机上运行客户端软件。

如果在命令行上复制,请使用:

# copy from local machine to remote machine
scp localfile user@host:/path/to/whereyouwant/thefile

要么

# copy from remote machine to local machine
scp user@host:/path/to/remotefile localfile

4
你是男人 我不到10秒就部署了一个博客,而服务器端没有任何其他安装!
PM

2
这工作得很好。我在cmd中使用了msysgit,因为它同时具有scp和ssh。
伊本·赛义德2014年

3
这工作得很好。我使用了scp * user @ host:/ path / to / where
Bastin Robin

3
那应该是最好的答案。
gsamaras 2015年

3
感谢您的WinSCP建议。比尝试手动编写所有这些命令更容易...
Brian Leishman

23

您需要同时指定源和目标,如果要复制目录,则应查看-r选项。

因此,要将/ home / user /任何内容从远程服务器递归复制到当前目录:

scp -pr user@remoteserver:whatever .

19

不,您仍然需要以scp [from] [to]任何方式复制

区别在于,您需要 scp -p server:serverpath localpath


8
-p的作用是什么?
Qinjie

1
man scp:保留原始文件的修改时间,访问时间和模式。
pjmil

4
明确说明-p仅包含在此处,因为OP在其原始问题中包含了该标志。它与答案没有任何关系
Gareth
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.