如何使用 SSH / SCP 从服务器下载文件

OS X 中的终端

使用 scp 安全下载文件主要针对在 macOS X、bsd 或 linux 中定期使用 ssh 和命令行的高级用户。对于有足够命令行经验的人来说,使用 ssh 和 scp 下载远程文件很简单,而且很方便,文件传输完成后,远程连接就会结束。这使得 scp 优先于 sftp 进行快速文件下载,但如果您愿意,显然也可以使用 sftp。

使用 SSH 安全复制从远程服务器下载文件

这假设远程服务器有 ssh 活动,如果你能够 ssh 进入机器,那么它也可能有 scp 活动。如果你没有远程服务器来尝试这个,你可以在 Mac OS X 机器之间尝试,或者如果你 预先在 Mac 上启用 ssh 和远程登录

使用 scp(安全复制)安全下载远程文件的基本语法如下,适当替换用户、服务器、路径和目标:

scp user@server:/path/to/remotefile.zip /Local/Target/Destination

例如,要将文件下载到位于服务器 IP 192.168.0.45 上远程用户“osxdaily”的主目录中名为“filename.zip”的本地桌面,语法如下:

% scp osxdaily@192.168.0.45:filename.zip ~/Desktop/
密码:
filename.zip 100% 126 10.1KB/s 00:00
%<代码>

假设身份验证正确,目标文件将立即开始下载到目标目的地,并在文件下载过程中提供完成百分比、下载速度和经过的传输时间。

与命令行一样,指定准确的语法很重要。

如果文件或路径名称中有空格,您可以在路径上使用引号或转义,如下所示:

scp osxdaily@192.168.0.45:"/some remote directory/filename.zip" ~/Desktop/

scp 也可用于通过调整语法将文件安全地放置在远程服务器上,但我们在这里专注于下载文件而不是上传文件。

如果您是 ssh 的新手并自己测试过,并且您之前从未连接到远程服务器,您将被要求确认您是否希望实际连接到远程机器。看起来是这样的,需要在下载开始之前回答“是”或“否”。
% scp osxdaily@192.168.0.4:filename.zip ~/Desktop/
无法建立主机“192.168.0.4 (192.168.0.4)”。
ECDSA 密钥指纹为 SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780。
您确定要继续连接吗(是/否)?是
警告:已将“192.168.0.4”(ECDSA) 永久添加到已知主机列表中。
密码:
filename.zip 100% 126 0.1KB/s 00:00
>%

同样,假设连接被批准并且登录成功,远程文件将从目标服务器下载到本地主机。

您还可以使用 scp 从远程服务器下载多个文件:

scp user@host:/remote/path/{file1.zip,file2.zip} /Local/Path/

像这样使用 ssh 进行远程文件下载最适合需要身份验证的安全传输。当然你也可以使用curl从远程服务器下载文件或wget,但是使用curl和wget访问的文件往往是可以访问的也可以从外部世界访问,而 ssh 和 scp 需要身份验证或密钥,并使用 3DES 加密,使其更加安全。