我在A主机用ssh命令行登录了B主机,我在B主机如何把文将复制到A主机

在已经通过 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 密钥对​ 实现免密码传输。

  1. 在 A 主机上生成密钥对(如果还没有的话): ssh-keygen -t rsa连续回车使用默认设置即可。
  2. 将 A 主机的公钥上传到 B 主机: 在 A 主机上执行: ssh-copy-id username@B_IP_ADDRESS这个过程需要输入一次 B 主机的密码。之后,从 A 主机 SSH 登录 B 主机就不再需要密码了。
  3. 现在,在 B 主机上向 A 主机传输文件时,同样不需要再输入 A 主机的密码。因为 B 主机已经信任来自 A 主机的这个密钥。

Comments

No comments yet. Why don’t you start the discussion?

发表回复