使用 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
是什么,也不知道在哪里的朋友,可以随时去putty
official 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)