Linux rcp 命令 - 在本地与远程服务器之间复制文件和目录
• 最后修改:2025-07-04 • 阅读量:6
本文全面解析 rcp
(remote copy)命令,提供多系统安装指南和深度操作技巧,涵盖远程文件复制、目录同步等全场景实践,特别说明安全风险及现代替代方案。
rcp 命令释义
rcp
(remote copy)是 Unix-like 系统中的经典工具,用于在 本地主机 和 远程主机 之间复制文件/目录。核心功能包括:
- 🌐 跨主机传输:通过 TCP / IP 网络复制文件
- 🔒 信任机制:基于
.rhosts
或/etc/hosts.equiv
的信任关系 - ⚠️ 安全风险:数据传输未加密(易被截获)
- 🚫 无交互认证:无需输入密码(依赖预配置信任关系)
典型应用场景:
- 内部安全网络中的服务器间文件传输
- 自动化脚本中的免密文件同步
- 旧系统维护(兼容性要求)
- 紧急文件传输(SSH不可用时)
rcp 命令系统安装指南
Debian / Ubuntu 系统
Debian / Ubuntu 系统安装 rcp:
# 更新软件源
sudo apt update
# 安装 rsh-client 包(含rcp)
sudo apt install rsh-client -y
RHEL / AlmaLinux / Rocky Linux 系统
RHEL / AlmaLinux / Rocky Linux 系统安装 rcp:
# 安装 rsh 包
sudo yum install rsh # CentOS/RHEL 7及以下
sudo dnf install rsh # RHEL 8+/AlmaLinux/Rocky
FreeBSD 系统
FreeBSD 系统安装 rcp:
# 通过 pkg 安装
sudo pkg install rsh
Arch Linux 系统
Arch Linux 系统安装 rcp:
# 安装 rsh 套件
sudo pacman -S rsh
注意:现代系统通常默认未安装rcp,因安全风险较高
rcp 命令命令语法
rcp [选项] 源路径 目标路径
路径格式:
- 本地路径:
/home/user/file.txt
- 远程路径:
用户名@主机名:/远程/路径
- 特殊符号:
~
表示用户家目录(如user@host:~/docs/
)
rcp 命令命令示例
基础文件传输
1、 本地 → 远程
rcp report.pdf admin@server:/backups/2023/
2、 远程 → 本地
rcp user@192.168.1.5:/var/log/app.log ./logs/
3、 远程 → 远程
rcp john@serverA:/data/source.db mary@serverB:/backups/
目录操作
4、 递归复制目录
rcp -r ~/projects/ dev@10.0.0.8:/shared/code/
5、 保留文件属性
rcp -p config.ini root@server:/etc/app/
高级技巧
6、 复制多个文件
rcp file1.txt file2.img user@remote:~/uploads/
7、 使用通配符
rcp *.log backup@storage:/archive/
8、 指定非标准端口(通过rsh)
rcp -x -P 2222 data.bin user@host:/tmp/
命令选项详解
选项 | 说明 | 安全风险等级 |
---|---|---|
-p |
保留源文件的修改时间、访问模式和权限 | ★☆☆☆☆ |
-r |
递归复制整个目录结构(包括子目录) | ★★☆☆☆ |
-k |
禁用 Kerberos 身份验证 | ★★★☆☆ |
-x |
启用 DES 加密传输(已过时,不推荐) | ★★★★☆ |
-d |
创建目标目录(如不存在) | ★☆☆☆☆ |
-h |
跟随符号链接(复制链接指向的实际文件) | ★★☆☆☆ |
-n |
不覆盖已存在文件 | ★☆☆☆☆ |
-v |
显示详细操作过程(verbose 模式) | ★☆☆☆☆ |
-P port |
指定远程主机的 TCP 端口(需配合 -x ) |
★★★★☆ |
安全警告:
- 所有
rcp
操作均使用 明文传输(包括密码模拟) -x
选项的 DES 加密已被证明不安全- 信任机制(
.rhosts
)易受 IP / 主机名欺骗攻击
安全配置说明
信任关系设置
1、 本地配置(~/.rhosts
)
# 允许 user@remote-host 无密码访问
remote-host.example.com user
2、 系统级配置(/etc/hosts.equiv
)
# 允许整个域访问
+.example.com
⚠️ 最佳实践:
- 避免使用
+
通配符 - 定期审计信任主机列表
- 设置严格的文件权限:
chmod 600 ~/.rhosts
结语
rcp
作为历史悠久的远程文件复制工具,存在严重安全隐患:
- 明文传输:数据易被中间人截获
- 认证脆弱:依赖主机名/IP验证(易欺骗)
- 协议过时:缺乏现代加密标准
安全替代方案
工具 | 优势 | 示例命令 |
---|---|---|
scp |
SSH加密传输 | scp -P 22 file user@host:/path |
rsync |
增量同步/断点续传 | rsync -avz -e ssh src/ user@host:/dest/ |
sftp |
交互式安全传输 | sftp -P 2022 user@host |
sshfs |
挂载远程目录 | sshfs user@host:/remote/path /local/mount |
迁移建议:
- 新系统统一使用
ssh
协议工具 - 旧脚本中的
rcp
替换为scp
或rsync
- 禁用
rsh
服务:sudo systemctl disable rsh.socket
- 防火墙屏蔽 514/tcp(rsh 端口)
通过本指南,您已掌握 rcp
的完整操作及安全风险。请优先使用现代加密工具保障数据传输安全!