通过SSH传输文件

454 ssh scp

我正在命令行上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%
Run Code Online (Sandbox Code Playgroud)

我希望能够在两个方向上传输文件.从我读到的,我认为上面的命令可以用于下载和scp -p [localpath] [remotepath]上传?

lem*_*sca 723

你需要scp某个地方的东西.你有scp ./styles/,所以你说安全副本./styles/,但不是在哪里复制它.

一般来说,如果你想下载,它将会:

# download: remote -> local
scp user@remote_host:remote_file local_file 
Run Code Online (Sandbox Code Playgroud)

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

# upload: local -> remote
scp local_file user@remote_host:remote_file
Run Code Online (Sandbox Code Playgroud)

如果要复制整个目录,则需要-r.想想scpcp,除了你可以指定一个文件user@remote_host:file以及刚刚本地文件.

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

  • 请注意,如果远程主机和本地主机上的用户相同,则可以省略用户名:scp hello.c myserver.net:〜/ project / (2认同)
  • “自然地”(我自然地说是因为我在这上面浪费了15分钟),在尝试“下载”到本地时不应连接到远程主机,因为如果您从远程实例执行代码,则“本地”会如果您理解我的意思,则被解释为“远程”。所以不要先运行ssh。 (2认同)

Jee*_*Bee 163

如果要复制到桌面计算机或从桌面计算机复制,请使用WinSCP,或者如果在Linux上,Nautilus通过"连接到服务器"选项支持SCP.

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

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

# copy from local machine to remote machine
scp localfile user@host:/path/to/whereyouwant/thefile
Run Code Online (Sandbox Code Playgroud)

要么

# copy from remote machine to local machine
scp user@host:/path/to/remotefile localfile
Run Code Online (Sandbox Code Playgroud)

  • 你就是男人.我在不到10秒的时间内部署了一个博客,而无需在服务器端进行任何额外安装 (3认同)
  • 这工作得很好。我在 cmd 中使用了 msysgit,因为它同时具有 scp 和 ssh。 (2认同)
  • 这工作得很好。我用scp * user @ host:/ path / to / where (2认同)
  • 那应该是最好的答案。 (2认同)
  • 感谢您的WinSCP建议。比尝试手动编写所有这些命令更容易... (2认同)

Ken*_*Ken 22

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

因此,从远程服务器递归复制/ home/user /以及当前目录:

scp -pr user@remoteserver:whatever .
Run Code Online (Sandbox Code Playgroud)


Gar*_*eth 17

不,你仍然需要scp [from] [to]以你复制的方式

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

  • -p的目的是什么? (7认同)
  • 为了清楚起见,此处仅包含-p,因为OP在其原始问题中包含该标志。与答案没有任何关系 (3认同)