通过SSH传输文件

我正在命令行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]上传?

你需要在某个地方找点东西。 你有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 。 除了可以用user@remote_host:file和本地文件指定一个文件外,可以把scp看作cp

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

如果复制到/从您的台式机,使用WinSCP,或者如果在Linux上,鹦鹉螺通过连接到服务器选项支持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 

你需要指定源和目的地,如果你想复制目录,你应该看看-r选项。

所以要recursion复制/ home / user /从远程服务器到你当前的目录:

 scp -pr user@remoteserver:whatever . 

不,你仍然需要scp [from] [to]任何方式抄袭

所不同的是,你需要scp -p server:serverpath localpath