ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux Command 命令详解:rcp 在两台 Linux 主机之间复制文件与免密配置实战

Linux Command 命令详解:rcp 在两台 Linux 主机之间复制文件与免密配置实战 文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载本指南以开源仓库 linux-command 中 command/rcp.md 文档为主体讲解 rcp 命令在两台 Linux 主机之间复制文件的完整用法从语法选项、远程文件名格式到/etc/hosts、.rhosts、rsh 服务的免密环境配置再到本地与远程之间单文件、批量文件与整目录的复制实战。读完你可以独立完成两台主机间的 rcp 免密复制环境搭建与日常文件分发任务并理解它基于 rsh 的执行原理及其安全局限。rcp 命令概述rcpremote copy是 BSD 系列系统与早期 Linux 系统中提供的一类远程复制工具其核心作用正如 command/rcp.md 开头所概括的使在两台 Linux 主机之间的文件复制操作更简单。通过适当的配置可以在两台 Linux 主机之间复制文件而无需输入密码就像本地文件复制一样简单。在本仓库 linux-command 中rcp 被收录为「文件管理」类命令见 README.md其命令入口也同步登记在站点搜索索引 dist/data.json 中n: rcp, p: /rcp读者可以直接在 web 端搜索定位到本文内容。需要特别强调的是rcp不提示输入口令它通过rsh命令来执行拷贝。这意味着文件复制的认证完全依赖主机间的信任关系.rhosts//etc/hosts.equiv数据默认以明文在网络上传输只有加-x选项时才加密由于上述特性rcp 在现代 Linux 发行版中已逐渐被scp、rsync等更安全、功能更强的工具取代本仓库同样收录了 command/scp.md 与 command/rsync.md但在维护老旧系统、学习经典 r 系列命令时仍有明确的查阅价值。语法与选项详解rcp 的通用语法为rcp(选项)(参数)选项说明选项作用-p保留源文件或目录的属性包括拥有者owner、所属群组group、权限mode与时间戳mtime/ctime-r递归处理将指定目录下的文件与子目录一并复制复制目录时必须使用-x加密两台 Linux 主机间传送的所有信息适用于对保密性有要求的传输场景-D指定远程服务器的端口号用于 rsh 服务监听在非默认端口如 514的环境参数说明源文件指定要复制的源文件。源文件可以有多个即一次命令可以同时复制多个文件到同一远程目录。远程文件名的格式与路径规则每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式rnamerhost:path其中rname远程用户名。如果省略则使用当前登录用户名rhost远程计算机名hostnamepath远程主机上的文件路径。关于路径有两条关键规则需要掌握相对路径的基准远程主机上的相对路径以「同名用户的主目录」为基准。如果没有给出远程用户名就使用当前用户名特殊字符的转义如果远程机上的路径包含特殊 shell 字符需要用反斜线\\、双引号或单引号括起来使所有的 shell 元字符都能被远程端解释避免被本地 shell 抢先展开。例如远程路径中包含空格或通配符时rcp test1 webserver1:/home/root/my dir/test1使用前提免密环境配置rcp 基于 rsh 完成传输且不提示输入口令因此在执行复制之前必须先打通两台主机之间的信任关系。按 command/rcp.md 的说明配置过程如下只对 root 用户生效配置 hosts 解析如果系统中有/etc/hosts文件系统管理员应确保该文件包含要与之通信的远程主机的条目。在双方的/etc/hosts文件中加入对方的 IP 与 hostname保证主机名可以解析。建立.rhosts信任文件在双方 root 用户根目录下建立.rhosts文件并将双方的 hostname 加进去。例如在主机 A 上# 编辑 /root/.rhosts写入主机 B 的 hostname webserver1启动 rsh 服务rsh 服务在 RedHat 等发行版中默认是不启动的它通常由 xinetd 托管。启动方法执行ntsysv命令在rsh选项前用空格键选中确定退出然后执行service xinetd restart放开 root 登录限制到/etc/pam.d/目录下把 rsh 文件中的如下一行用#注释掉auth required /lib/security/pam_securetty.so只有注释掉这一行root 用户才被允许通过 rsh 登录rcp 才能以 root 身份完成免密复制。完成上述四步后两台主机之间即可像本地复制一样执行 rcp无需交互输入密码。实战将本地文件复制到远程系统复制到远程子目录保持原名将当前目录下的test1复制到名为webserver1的远程系统rcp test1 webserver1:/home/root/test3这种情况下test1被复制到远程子目录test3下名称仍为test1。如果仅提供了远程主机名而不带路径rcp 会把test1复制到远程主目录下名称仍为test1rcp test1 webserver1:复制并重命名还可以在目的路径中包含文件名。例如将文件复制到名为webserver1的系统中rcp test1 webserver1:/home/root/test3当远程的/home/root/test3是目标文件名或不存在于 root 目录时这条命令会把本地的test1复制到远程目录root下并命名为test3。两条示例命令形式上相同区别在于远程路径test3在目标主机上是「已存在的目录」还是「目标文件名」——前者保持原名落入目录后者直接重命名。这一行为与本地cp的语义一致使用时务必先确认目标路径的类型。实战从远程系统复制文件到本地从远程系统复制文件到本地目录的基本语法为rcp remote_hostname:remote_file local_file例如将远程系统webserver1中的test2复制到当前目录rcp webserver1:/home/root/test2 ..是「当前目录」的简写形式。在这种情况下远程目录中的test2被复制到当前目录下名称仍为test2。如果希望用新名称复制文件请提供目标文件名。如果希望将test2复制到本地系统中的其他目录下请使用绝对或相对路径名rcp webserver1:/home/root/test2 otherdir/或者如果希望用其他文件名将文件复制到其他目录下rcp webserver1:/home/root/test2 otherdir/otherfile实战目录的递归复制复制目录必须同时使用rcp与-r递归选项否则无法处理目录内的文件与子目录。将本地目录复制到远程系统基本语法rcp -r local_dir remote_hostname:remote_dir如果当前目录下没有local_dir则除本地目录名外还需要提供相对路径名自当前目录开始或绝对路径名自/顶级目录开始。同理如果远程主机的主目录下没有remote_dir则remote_dir需要相对路径自主目录开始或绝对路径自/开始。例如要将名为work的子目录完整地复制到webserver1远程计算机中主目录下的products目录rcp -r work webserver1:/home/root/products此命令会在webserver1:/home/root/products下创建名为work的目录及其全部内容前提是/home/root/products已存在于webserver1中。本示例假定用户处于包含work的本地目录下否则必须提供该目录的相对或绝对路径如/home/root/workrcp -r /home/root/work webserver1:/home/root/products从远程系统复制目录到本地基本语法rcp -r remote_hostname:remote_dir local_dir例如要将名为work的远程目录复制到当前目录rcp -r webserver1:/home/root/work ..表示当前目录将在此目录下创建work目录及其全部内容。传输路径与执行原理小结综合上文可以归纳出 rcp 的四类调用形态覆盖单文件与整目录、上行与下行全部场景场景命令形态示例本地 → 远程单文件rcp local_file remote_host:remote_pathrcp test1 webserver1:/home/root/远程 → 本地单文件rcp remote_host:remote_path local_pathrcp webserver1:/home/root/test2 .本地 → 远程目录rcp -r local_dir remote_host:remote_dirrcp -r work webserver1:/home/root/products远程 → 本地目录rcp -r remote_host:remote_dir local_dirrcp -r webserver1:/home/root/work .从执行原理看rcp 本身并不维护自己的传输通道而是委托 rsh 在远程主机上执行对应的复制操作。这也解释了为什么 rcp 无密码提示认证是否免密完全取决于上文.rhosts/ PAM 配置是否打通。理解了这一层就能明白为什么 rcp 默认不加密明文传输以及为什么-x选项会成为敏感数据传输时的必要开关。安全性与替代方案需要明确的是rcp 属于 r 系列远程命令rlogin / rsh / rcp其设计前提是主机间的信任网络存在两点固有局限明文传输默认情况下数据与文件内容在网络中不加密容易被嗅探认证依赖信任文件.rhosts一旦配置不当如写入过多的主机名相当于向这些主机开放免密访问安全边界较脆弱。因此在现代 Linux 环境中跨主机文件传输更推荐使用本仓库同样收录的command/scp.md基于 SSH数据加密传输、支持口令与密钥认证command/rsync.md基于 SSH 或自带守护进程支持增量同步、断点续传与权限保留。rcp 的适用场景目前主要集中于老旧系统维护、教材学习以及对传统 r 命令生态兼容性有要求的内部网络。理解 rcp 的选项与信任机制也有助于反向理解 scp/rsync 在设计上解决了哪些问题。结语本文以 command/rcp.md 为骨架完整梳理了 rcp 的语法、选项-p、-r、-x、-D、远程文件名格式、基于 rsh 的免密配置四步法以及本地与远程之间的单文件、重命名、递归目录复制等全部实战形态。无论你是查阅速查手册还是需要维护仍依赖 rcp 的旧环境都可以把本文作为可复制、可运行的参考。若需更安全的传输方案请转向仓库中的 command/scp.md 与 command/rsync.md。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐linux-command 仓库 cp 命令详解Linux 文件复制的完整实战指南linux command 仓库 cp 命令详解Linux 文件复制的完整实战指南 本指南以 linux command 仓库中的 command/cp.md文档教程linux-command 手册精读getcap 命令详解与 Linux 文件能力capabilities权限机制实战linux command 手册精读getcap 命令详解与 Linux 文件能力capabilities权限机制实战 本篇技术指南围绕 Linux 命令文档教程linux-command 项目实战hostname 命令显示与设置系统主机名详解linux command 项目实战hostname 命令显示与设置系统主机名详解 本文基于 linux command 仓库的 command/hostna文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表