ssh端口从22改到其他端口后,rsync的用法

本文通过一个具体的示例,展示了如何使用rsync命令进行远程文件同步。包括命令参数的详细解释,如-avH等选项的作用,以及通过SSH进行端口转发的过程。实测结果显示了文件传输的速度和效率。

[root@jsb~]# rsync -avH --progress '-e ssh -p 2222' root@192.168.1.3:/etc/passwd ./
receiving file list ...
1 file to consider
passwd
        1846 100%    1.76MB/s    0:00:00 (xfer#1, to-check=0/1)

sent 42 bytes  received 1945 bytes  794.80 bytes/sec
total size is 1846  speedup is 0.93

<think>我们已知用户需要在一行命令中实现从机器A传输tar文件到机器B,且目标机器的SSH端口不是默认的22端口。 根据引用[2]中的信息,scp命令有一个选项 `-P`(注意是大写的P)用于指定端口(引用[2]中提到:-P: 指定远程主机的SSH目录)。但注意,在scp命令中,`-P` 用于指定端口号(在ssh命令中,指定端口是 `-p` 小写,而在scp中是大写 `-P`)。因此,我们需要在scp命令中使用 `-P` 来指定非标准端口。 此外,我们之前使用了sshpass来提供密码,这里同样适用。 因此,命令格式如下: sshpass -p '密码' scp -P 端口号 /路径/到/源文件.tar 用户名@机器B的IP地址:/目标路径/ 注意: - 端口号参数 `-P` 后面紧跟端口号(中间有空格,也可以紧挨着,但通常建议用空格隔开,即 `-P port`)。 - 其他参数与之前相同。 示例: 假设目标机器的SSH端口2222,密码为123456,源文件为`/data/backup.tar`,目标机器IP为10.10.255.100,用户名为root,目标路径为`/backup/`,则命令为: sshpass -p '123456' scp -P 2222 /data/backup.tar root@10.10.255.100:/backup/ 安全性提醒:在命令行中直接使用密码存在安全风险,建议使用SSH密钥认证(无密码登录)。但根据用户要求,这里使用一行命令完成,且包含密码。 引用说明: 引用[2]中提到了scp的基本语法和选项,包括 `-P` 选项用于指定端口(虽然描述为“指定远程主机的SSH目录”,但实际在scp命令中,`-P` 是指定端口,此处可能是文档的小错误)。根据标准scp文档,`-P` 确实是指定端口。 另外,引用[1]中给出的示例没有指定端口,但我们可以通过添加 `-P` 选项来指定非标准端口。 因此,我们给出最终答案。 注意:如果目标机器上的SSH服务监听的端口不是22,则必须用 `-P` 指定,否则连接会失败。 如果用户使用SSH密钥认证,则可以省略sshpass部分,但这里用户需要的是带密码的一行命令,且指定端口。 所以,一行命令如下: </think> ### 非默认SSH端口传输tar文件的命令 当目标机器SSH端口非默认的22端口时,需要在`scp`命令中通过`-P`参数指定端口号(注意大写P)。命令格式如下: ```bash sshpass -p '密码' scp -P 目标端口号 /源路径/文件.tar 用户名@目标IP:/目标路径/ ``` #### 参数说明(需替实际值): 1. **`-P 目标端口号`** 指定目标机器的SSH端口号(如`2222`),引用[2]提到这是scp的端口指定参数[^2] 2. **`-p '密码'`** 目标机器的登录密码(安全性提示:生产环境建议用SSH密钥) 3. **`/源路径/文件.tar`** 机器A上的tar文件路径(如`/backup/data.tar`) 4. **`用户名@目标IP`** 目标机器的登录信息(如`admin@192.168.1.100`) 5. **`/目标路径/`** 文件在机器B的存储位置(如`/remote/backup/`) #### 示例: 目标端口为`2222`,密码为`pass123`,传输`/home/user/data.tar`到`admin@10.0.0.5`的`/backup/`目录: ```bash sshpass -p 'pass123' scp -P 2222 /home/user/data.tar admin@10.0.0.5:/backup/ ``` #### 注意事项: 1. **端口验证** 确保目标机器的SSH服务在指定端口运行(可通过`nc -zv 目标IP 端口号`测试) 2. **安全性增强** ▸ 推荐使用SSH密钥认证(生成密钥:`ssh-keygen`,上传公钥:`ssh-copy-id -p 端口号 用户名@IP`) ▸ 密钥认证示例: ```bash scp -P 2222 /home/user/data.tar admin@10.0.0.5:/backup/ ``` 3. **传输优化** - 大文件添加压缩:`-C`参数(引用[2]) ```bash scp -P 2222 -C /home/user/data.tar admin@10.0.0.5:/backup/ ``` - 限速避免带宽占用(如1MB/s): ```bash scp -P 2222 -l 8192 /home/user/data.tar admin@10.0.0.5:/backup/ ``` --- ### 相关问题 1. **如何为scp命令指定多个非标准端口?** (当目标机器有多个备用SSH端口时) 2. **防火墙如何放行非标准SSH端口的传输?** (需配置`firewalld`或`iptables`规则) 3. **scp和rsync在非标准端口传输中有哪些差异?** (对比断点续传、增量同步等特性)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值