rsync实现linux实现不同服务器文件互传

一、在主机192.168.2.101上建aaa.txt文件传输到192.168.2.102这台,使用命令

rsync -avz /home/soft/aaa.txt root@192.168.2.102:/home/soft/

通常会要求输入root用户的密码

解决方法:

使用 ssh key

1、在101服务器上root用户执行,

ssh-keygen -t rsa

然后直接回车就会在该用户下生成 /root/.ssh文件夹,里面有三个文件

id_rsa  

id_rsa.pub

 known_hosts

2、在102服务器上创建 .ssh目录

mkdir -p /root/.ssh
touch authorized_keys

将第1步的 id_rsa.pub的内容拷入到 authorized_keys ,保存退出

3、这时候,执行 rsync 从101服务器将文件传输到102就不需要输入密码就可以传输成功了。

可以使用 ss -tulnp | grep 873  或者使用 netstat -tulnp | grep 873 查看端口情况

[root@localhost ~]# ss -tulnp | grep 873
tcp    LISTEN     0      128       *:873                   *:*                   users:(("sshd",pid=1148,fd=3))
tcp    LISTEN     0      128      :::873                  :::*                   users:(("sshd",pid=1148,fd=4))

问题:

        第3步是在101 执行rsync命令是不需要输入密码,但是如果在102执行rsync就需要输入密码。

解决:

        这时候,就需要在102执行生成 ssh key,然后拷贝到101上,步骤同上。

二、以上传输都是通过 ssh 默认端口 22 传输的。

如果需要修改传输端口:

vi /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 873
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
.......

修改Port 22 为 Port 873,保存退出

重启 sshd

systemctl restart sshd

正常到这步就把ssh的22端口修改为873,查看系统日志,如果出现以下异常的话。

less /var/log/secure

出现以下异常信息
Aug 18 11:20:17 localhost sshd[4105]: error: Bind to port 873 on 0.0.0.0 failed: Permission denied.
Aug 18 11:20:17 localhost sshd[4105]: error: Bind to port 873 on :: failed: Permission denied.
Aug 18 11:20:17 localhost sshd[4105]: fatal: Cannot bind any address.

修改selinux 安全配置

vi /etc/selinux/config

将 SELINUX=enforcing 修改为 SELINUX=disabled

然后重启服务器后,就可以正常使用873端口传输文件

rsync -avz -e 'ssh -p 873' /home/soft/aaa.txt root@192.168.2.102:/home/soft/

问题:以上是没有开启防火墙情况;如果开启了还需要做哪些处理。

需要防火墙开放873端口,并重新加载防火墙

firewall-cmd --zone=public --add-port=873/tcp --permanet
firewall-cmd --reload

 

firewall-cmd --list-all

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client ssh
  ports: 873/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:



删除端口
firewall-cmd --zone=public --remove-port=873/tcp --permanet

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值