在已经通过 SSH 登录到 B 主机的情况下,将文件发回 A 主机,主要有以下几种可靠的方法。下面这个表格能帮你快速看清它们的特点。
| 方法 | 核心命令 (在B主机上执行) | 优势 | 适用场景 |
|---|---|---|---|
| SCP(安全复制) | scp /path/on/B/file.txt username@A_IP_ADDRESS:/path/on/A/ | 简单直接,一步完成文件传输。 | 传输单个或少量文件,操作快速。 |
| SFTP(安全文件传输) | sftp username@A_IP_ADDRESS,然后使用 put等命令。 | 交互式操作,可浏览目录、管理文件。 | 需要传输多个文件或进行简单文件管理。 |
| RSYNC(远程同步) | rsync -avz /path/on/B/file.txt username@A_IP_ADDRESS:/path/on/A/ | 支持增量同步,效率高,适合同步大量文件。 | 同步大量文件或定期备份,需高效传输。 |
操作须知与技巧
无论选择哪种方法,开始前请确认以下几点:
- 网络可达:确保 B 主机能够访问 A 主机的 IP 地址。
- 认证信息:你需要知道 A 主机的 用户名、IP 地址 以及该用户对应的 密码。
- SSH 服务:A 主机需要运行 SSH 服务(如 OpenSSH-Server)才能接收连接。
- 非标准端口:如果 A 主机的 SSH 服务端口不是默认的 22,在所有命令中都需要使用
-P port_number(SCP/SFTP)或-e 'ssh -p port_number'(RSYNC)来指定端口。
进阶设置:免密传输
如果需要频繁传输,每次输入密码会很麻烦。可以通过配置 SSH 密钥对 实现免密码传输。
- 在 A 主机上生成密钥对(如果还没有的话):
ssh-keygen -t rsa连续回车使用默认设置即可。 - 将 A 主机的公钥上传到 B 主机: 在 A 主机上执行:
ssh-copy-id username@B_IP_ADDRESS这个过程需要输入一次 B 主机的密码。之后,从 A 主机 SSH 登录 B 主机就不再需要密码了。 - 现在,在 B 主机上向 A 主机传输文件时,同样不需要再输入 A 主机的密码。因为 B 主机已经信任来自 A 主机的这个密钥。