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

Posted

技术标签:

【中文标题】使用 SSH 将文件从服务器复制到本地计算机 [关闭]【英文标题】:Copying files from server to local computer using SSH [closed] 【发布时间】:2015-08-13 17:28:11 【问题描述】:

我无法使用 SSH 从远程服务器复制文件。使用 PuTTY 我使用 SSH 登录到服务器。找到要复制到计算机的文件后,我使用以下命令:

scp username@host.com:/dir/of/file.txt \local\dir\

看起来成功了,但最终只是在远程目录/dir/of/中创建了一个标有“localdir”的新文件夹。

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

【问题讨论】:

您的问题并不清楚:您是在 本地 计算机上运行scp,还是通过 SSH 在远程 shell 内运行? 我相信通过 SSH 在远程 shell 中。 我想把它弹出来,因为我无法让它成为答案......一个名为 FileZilla 的程序允许您连接到您的 ssh 并在您的服务器和本地设备之间交换文件。 你可以安装Git并输入scp username@host:path_to_file path_in_the_local_machine这会在远程机器上询问你的密码。 【参考方案1】:

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

如果你的本地操作系统是类 Unix,那么试试:

scp username@remoteHost:/remote/dir/file.txt /local/dir/

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

pscp.exe username@remoteHost:/remote/dir/file.txt d:\

您的本地操作系统似乎是 Unix,所以请尝试使用前者。


不知道pscp.exe是什么,也不知道在哪里的朋友,可以随时去puttyofficial website下载。然后打开一个 CMD 提示符,转到你放置它的 pscp.exe 目录。然后执行上面提供的命令

【讨论】:

我的本地操作系统是 Windows。我从 putty 网站下载了 pscp.exe。我试着打开它,没有任何反应。另外,我尝试了您上面列出的命令并给出: pscp.exe comman not found。也尝试了不带 .exe 并导致相同的错误。 打开 CMD 提示符,然后转到您放置它的 pscp.exe 目录。然后执行上面提供的命令。 在mac上使用scp必须提供./参数来表示文件必须下载到mac机器上的当前文件夹中。 使用适用于 Linux 的 Windows 子系统(WSL,基本上是 Windows 上的 Ubuntu),如果您的本地操作系统是 Windows,您现在也可以打开 Bash,并且只需使用 scp。专业提示:您可以从 WSL 访问您的 Windows 文件系统。它在 /mnt/c 下。所以你可以这样做:scp username@remoteHost:/remote/dir/file.txt /mnt/c 从 2018 年秋季更新开始,Windows 10 现在带有 OpenSSH 并且在 PATH 上。这意味着您也可以在 Windows 10 上使用scp 命令。【参考方案2】:

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

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

local> scp -r username@host.com:/path/to/dir local/path 

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

【讨论】:

【参考方案3】:

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

scp username@host.com:/dir/of/file.txt \local\dir\file.txt

【讨论】:

我不认为这是正确的。如果目标目标是一个目录,它将以与源相同的文件名放置该文件。 @WilliamPrice 我认为这取决于本地操作系统 @0yeoj 为了我的启迪,那是哪个本地操作系统?我双启动 Fedora 和 Win8.1 并验证仅指定目标目录适用于 Linux 版本的 scp 和 Putty 提供的 pscp 可执行文件。 @WilliamPrice,试试看mainframer 的回答你可能是check,你是正确的如果目标是一个目录,它会将文件放在那里与源文件名相同。 看来我确实错了。【参考方案4】:

确保 scp 命令 在两边都可用 - 都在 客户端服务器

BOTH 服务器和客户端,否则您将在客户端上遇到这种(奇怪的)错误消息:scp: command not found 或类似的东西,即使您已经在本地配置了所有这些。

【讨论】:

【参考方案5】:

该 scp 命令必须在本地命令行上发出,对于 putty,该命令是 pscp。

C:\something> pscp username@host.com:/dir/of/file.txt \local\dir\

【讨论】:

我从 putty 下载了 pscp.exe 并尝试打开它,但没有任何反应。然后我在putty.exe应用程序中尝试了命令,报错:找不到pscp命令。 它必须安装在您的路径中,因为您似乎没有意识到这一点,您可能会发现 filezilla 比 scp 更易于使用。 Filezilla 使用起来超级简单。我能够设置 FileZilla 并使用 SSH 凭据连接到 Raspberry pi。

以上是关于使用 SSH 将文件从服务器复制到本地计算机 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

SSH连接下复制远程linux服务器文件到本地的命令(zz)

如何将文件从远程服务器复制到本地计算机? [关闭]

将本地文件从 Mac 复制到终端中的 ssh 会话 [关闭]

SSH SCP本地文件到终端Mac Os X中的远程

ssh怎么把本地的文件上传到服务器

用于将文件夹从本地计算机复制到远程服务器的 scp 命令语法 [关闭]