安全复制协议 (SCP) 是一种在类 Unix 系统之间传输文件的快速安全的方法。它使用安全外壳 (SSH) 进行数据传输,并提供强大的身份验证和安全的加密数据通信。本教程将指导您完成使用 SCP 在服务器之间传输文件的过程。
由于 SCP 使用 SSH 来保护进程,因此一旦设置并启用了 SSH,我们就可以轻松地使用 SCP 在服务器之间传输文件。
先决条件
- 了解服务器地址、用户名和密码或用于身份验证的 SSH 密钥。
- 访问两个已安装和配置了 SCP 的服务器。
第 1 步 – 连接到服务器
在使用 SCP 之前,请确保您具有对两个服务器的 SSH 访问权限。要建立 SSH 连接,请打开终端并使用 SSH 命令连接到服务器:
ssh username@server_ip
替换为您的用户名和服务器的 IP 地址或主机名。
usernameserver_ip
提供密码或使用 SSH 密钥进行身份验证。
连接后,您就可以使用 SCP。
第 2 步 – 使用 scp 传输单个文件和多个文件
- 传输单个文件
要将单个文件从本地计算机传输到服务器,请执行以下操作:
scp /path/to/local/file username@server_ip:/path/to/remote/directory要从服务器传输到本地计算机,请执行以下操作:
scp username@server_ip:/path/to/remote/file /path/to/local/directory - 传输多个文件或目录
对于多个文件或目录,请使用:
scp -r /path/to/local/directory username@server_ip:/path/to/remote/directory该标志用于递归复制整个目录。
-r
选项和标志:
详细模式 (-v):提供有关传输过程的详细信息。
保留文件属性 (-p):保留原始文件属性,如修改时间和权限。
第 3 步 – 检查文件
传输后,验证文件的完整性:
- 连接到目标服务器:使用 SSH 登录到传输文件的服务器。
- 导航到目录:切换到发送文件的目录。
- 列出文件:使用 或 查看文件及其详细信息。
lsls -l - 检查文件完整性:(可选)比较文件大小或使用校验和(例如,使用 )以确保文件完好无损。
md5sum
简单提示
- 访问权限
对于 Hetzner 云服务器,默认用户通常是 root 用户。如果您在使用非 root 用户时遇到权限问题,请考虑使用 或 之类的命令。这些命令可以修改文件权限和所有权,从而使您能够有效地管理访问权限。例如:
chmodchownchmod更改文件模式位。示例:为所有者设置读写权限,为其他人设置只读权限。chmod 644 filenamechown更改文件所有者和组。示例:为文件分配新的所有者和组。chown username:groupname filename
- 在两台服务器之间传输文件
如果您尝试使用 SCP 在两台服务器之间传输文件,一种有效的方法包括首先通过 SSH 连接到其中一个服务器,然后从该服务器内部执行 SCP 命令以连接到第二个服务器。此方法通常称为“在服务器之间跳跃”,在从本地计算机到其中一个服务器的直接 SCP 访问受到限制或不可行的情况下特别有用:
local machine » first server » second server以下是增强此过程的方法:
- 初始 SSH 连接:使用 SSH 连接到第一台服务器。例如。
ssh user@first-server-ip - SCP 命令执行:登录到第一台服务器后,使用 SCP 命令将文件传输到第二台服务器或从第二台服务器传输文件。例如,要将文件从第一台服务器传输到第二台服务器,您可以使用:
scp /path/to/file user@second-server-ip:/path/to/destination相反,要将文件从第二台服务器传输到第一台服务器,则需要反转路径。
- 使用 SSH 密钥进行无缝身份验证:如果您设置了 SSH 密钥进行身份验证,则可以避免在此过程中手动输入密码。确保第一台服务器具有在第二台服务器上获得授权的 SSH 密钥。
- 端口转发(如果需要):如果直接连接由于防火墙规则或其他网络策略而受到限制,请考虑设置 SSH 端口转发或隧道。此技术可以安全地将流量通过第一台服务器路由到第二台服务器。有关详细信息,请参阅此入门中的“步骤 6”。
- 用于故障排除的详细模式:如果遇到问题,请将标志与 SCP 命令一起使用以获得详细输出。这可以提供对连接或传输错误的见解。
-v - 使用脚本实现自动化:对于频繁的传输,请考虑编写 shell 脚本来自动执行此过程。这可以节省时间并减少手动输入期间出错的可能性。
- 初始 SSH 连接:使用 SSH 连接到第一台服务器。例如。
结论
在本教程中,您学习了如何使用 SCP 在服务器之间传输文件。SCP 提供了一种安全高效的方式来传输文件,通过这些简单的步骤,您可以轻松地以安全的方式在服务器之间移动文件。对于系统管理员和任何需要在网络之间安全移动数据的人来说,它都是一个有价值的工具。请记住,在传输后始终验证文件的完整性,以确保它们完整且未损坏。