使用SSH将文件从服务器复制到本地计算机

Vin*_*ent 44 ssh scp

我在使用SSH从远程服务器复制文件时遇到问题.使用PuTTY我使用SSH登录服务器.一旦我找到要复制到我的计算机的文件,我就使用命令:

scp username@host.com:/dir/of/file.txt \local\dir\
Run Code Online (Sandbox Code Playgroud)

看起来它很成功,但它最终只会在远程目录中创建一个标记为"localdir"的新文件夹/dir/of/.

如何通过SSH将文件复制到本地计算机?

mai*_*mer 92

这取决于您的本地操作系统.

如果您的本地操作系统类似Unix,请尝试:

scp username@remoteHost:/remote/dir/file.txt /local/dir/
Run Code Online (Sandbox Code Playgroud)

如果您的本地操作系统是Windows,那么您应该使用pscp.exe实用程序.例如,下面的命令会将file.txt从远程下载到D:本地机器的磁盘.

pscp.exe username@remoteHost:/remote/dir/file.txt d:\
Run Code Online (Sandbox Code Playgroud)

看来你的本地操作系统是Unix,所以试试前者.


对于那些不知道什么pscp.exe是什么,不知道它在哪里的人,你可以随时到putty 官方网站下载它.然后打开CMD提示符,转到放置它的pscp.exe目录.然后执行上面提供的命令

  • 截至 2018 年秋季更新,Windows 10 现已附带 OpenSSH 并位于 PATH 上。这意味着您也可以在 Windows 10 上使用“scp”命令。 (3认同)
  • 打开CMD提示符,然后转到放置它的pscp.exe目录.然后执行上面提供的命令. (2认同)
  • 使用适用于 Linux 的 Windows 子系统(WSL,基本上是 Windows 上的 Ubuntu),如果您的本地操作系统是 Windows,您现在也可以打开 Bash,只需使用 scp。专业提示:您可以从 WSL 访问您的 Windows 文件系统。它在 /mnt/c 下。所以你可以做这样的事情:`scp username@remoteHost:/remote/dir/file.txt /mnt/c` (2认同)

gab*_*jit 8

您的问题有点令人困惑,但是我假设-您正在先执行'ssh'来查找哪些文件,或者确切地说是目录,然后再次在本地计算机上,尝试在该目录中捕获'所有'文件到本地路径。你应该简单地做scp -r

所以在你的情况下,它会像

local> scp -r username@host.com:/path/to/dir local/path 
Run Code Online (Sandbox Code Playgroud)

如果您正在使用其他提供“类似scp功能”的可执行文件,请参考其手册以递归方式复制文件。


And*_*ndy 6

您需要在两个目录路径中命名文件。

scp username@host.com:/dir/of/file.txt \local\dir\file.txt
Run Code Online (Sandbox Code Playgroud)

  • 我不相信这是正确的。如果目标目标是一个目录,它会将与源文件名相同的文件放在那里。 (2认同)

0ye*_*eoj 6

确保scp 命令在双方都可用 - 在 客户端服务器上

BOTH:服务器和客户端,否则你会遇到这种客户端上(怪异)的错误信息scp: command not found,虽然你拥有这一切本地配置或即使类似的东西。