rsync 使用ssh协议如何设置ssh端口_配置文件

1、rsync 通过 ssh 方式同步

现在打开两个PuTTY窗口,001机器的见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_02


02机器见下图,

rsync 使用ssh协议如何设置ssh端口_运维_03


两个的IP地址是不一样的,001机器的IP地址是 192.168.218.128,02机器的IP地址是 192.168.218.130。

现在在001机器上操作,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_04


显示未找到命令,默认系统中是没有rsync命令,现在需要在02机器上安装rsync命令,输入命令 yum install -y rsync,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_05


rsync 使用ssh协议如何设置ssh端口_IP_06


接着回到001机器,重新操作,通过ssh同步,输入命令 rsync -av /etc/passwd 192.168.218.130:/tmp/lys.txt ,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_07


可以看到文件同步的过程。接着来查看一下文件,输入命令 cat /tmp/lys.txt 回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_08


也可以反过来操作,输入命令 rsync -avP 192.168.218.130:/tmp/lys.txt /tmp/123.txt,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_09


以上操作叫拉文件,再上面的操作叫推文件。两个操作都需要输入密码,并且都知道端口是 22,如果不知道对方的端口的话,就需要指定端口,加上-e选项,输入命令 rsync -avP -e "ssh -p 22" /etc/passwd 192.168.218.130:/tmp/lys.txt ,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_10


指定 22 端口,就会连上对方的 22 端口。注意 -e 后面的“ssh -p 22”是一个命令,这个命令可以单独操作的 ,输入命令 ssh -p 22 192.168.218.130,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_开发工具_11


可以发现,输入密码之后,就连接上02机器了,接着按住 ctrl+d 登出。

2、rsync 通过服务同步

这边需要先开启服务,编辑配置文件,输入命令 vi /etc/rsyncd.conf,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_开发工具_12


默认是有内容的,但前面都有一个#号,被注释掉了。现在直接另起一行,将下面的内容复制粘贴上去,再保存并退出即可。

port=873

log file=/var/log/rsync.log

pid file=/var/run/rsyncd.pid

address=192.168.218.128

[test]

path=/tmp/rsync

use chroot=true

max cnotallow=4

read notallow=no

list=true

uid=root

gid=root

auth user=test

secrets file=/etc/rsyncd.passwd

hosts allow=192.168.218.130

见下图,

rsync 使用ssh协议如何设置ssh端口_IP_13


稍后再解释上面内容的含义,先接着往下操作,启动服务,输入命令 rsync--daemon,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_14


接着使用命令 ps aux |grep rsync,来检测一下服务是否启动,见下图,

rsync 使用ssh协议如何设置ssh端口_vim_15


可以看到服务启动了,接着使用命令 netstat -lntp 查看服务端口,如上图第三个红色框框内容所示。

接着创建文件 /tmp/rsync,并授权 777,方便我们测试,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_16


然后先在02机器上,同步一个文件,输入命令 rsync -avP /tmp/lys.txt 192.168.218.128::test/lys-02.txt,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_17


出现报错,先检测网络,发现没有问题,接着检查端口,未找到命令,输入命令 yum install -y telnet,回车,安装命令,见下图,

rsync 使用ssh协议如何设置ssh端口_开发工具_18


telnet 192.168.218.128 873,命令是检测端口是否接通,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_19


结果显示,端口是不通的,这时候需要检查一下是否是 iptables 的问题,输入命令 iptables -v

L,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_20


rsync 使用ssh协议如何设置ssh端口_开发工具_21


rsync 使用ssh协议如何设置ssh端口_IP_22


可以看出,就是 iptables 的问题,要把 firewalld 服务停止,见下图,

rsync 使用ssh协议如何设置ssh端口_vim_23


可以看到,iptables 上的规则没有了,001机器上也要检查一下,见下图,

rsync 使用ssh协议如何设置ssh端口_vim_24


rsync 使用ssh协议如何设置ssh端口_IP_25


rsync 使用ssh协议如何设置ssh端口_IP_26


001机器上的 firewalld 服务也关闭掉了。然后回到02机器,输入命令 telnet 192.168.218.128 873,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_vim_27


这样子就是没问题的,退出输入 telnet> quit 或是直接回车,就可以退出来。

接着运行刚才的命令 rsync -avP /tmp/lys.txt 192.168.218.128::test/lys-02.txt,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_28


这样显示就是成功了。命令中含有两个冒号 :: 的,就是使用 rsyncd.conf 。接着在001机器上检查一下,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_29


可以看到 lys-02.txt 这个文件,说明同步成功了。

回到02机器上,再把这个文件拉回来,也是可以的,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_30


接下来,输入命令 cat /etc/rsyncd.conf,回车,查看配置文件,见下图,

rsync 使用ssh协议如何设置ssh端口_运维_31


上图红色框框的内容,具体含义见下图,

rsync 使用ssh协议如何设置ssh端口_vim_32


port 默认端口是873,也可以更改,直接在配置文件里面更改即可。

现在来更改一下端口为8730,先进入配置文件,输入命令 vim /etc/rsyncd.conf,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_33


更改上面红色框框的内容,保存并退出。接着往下操作,

rsync 使用ssh协议如何设置ssh端口_IP_34


更改配置文件之后,还要重新启动服务,才可以生效,然后看到端口更改成功了。

接着去02机器,同步目录,见下图,

rsync 使用ssh协议如何设置ssh端口_IP_35


一开始同步的时候,报错了,因为8730端口没有开放。指定端口后,才可以同步目录。

日志文件,输入命令 cat /var/log/rsync.log,回车见入查看,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_36


“use chroot” 默认为true,如果是true,同步的文件中如果有软连接,则会有问题,无法实现同步。这时候更改配置文件里的 use chroot 为 false 的话,软链接同步就可以实现了。

rsync 使用ssh协议如何设置ssh端口_开发工具_37


现在看看 list 为 ture 的时候,输入命令 rsync --port=8730 192.168.218.128::,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_开发工具_38


后面不跟模块名的时候,会自动列出模块名。然后更改 list 为 false,输入命令 vi /etc/rsyncd.conf,进入下图,

rsync 使用ssh协议如何设置ssh端口_运维_39


保存并退出,再来看一下刚才的命令,见下图,

rsync 使用ssh协议如何设置ssh端口_vim_40


list 改为 false 的时候,就不会有结果出现。

接着来看看 uid 和 gid,在001机器上,原本设置的全部是 root,具体操作见下图,

rsync 使用ssh协议如何设置ssh端口_开发工具_41


查看目录 /tmp/rsync/ 下的文件权限都是 root,先把这些文件都删除掉,再重新定义 uid 和 gid,通过命令 vim /etc/rsyncd.conf,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_42


nobody 是权限很小的一个用户。

现在回到02机器上同步一下,见下图,

rsync 使用ssh协议如何设置ssh端口_运维_43


可以看到结果的第三行,显示 Operation not permitted,意思为权限不够,所以不能完成同步。所以还要把001机器上的 uid 和 gid 改为 root,这边不显示过程了。然后再回到02机器上同步操作,就可以执行了,见下图,

rsync 使用ssh协议如何设置ssh端口_运维_44


传输过程指定用户名 auth users 和密码文件 secrets file,输入命令 vim /etc/rsyncd.passwd,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_vim_45


输入密码,格式见上图。保存并退出,还要更改文件的权限为600,见下图,

rsync 使用ssh协议如何设置ssh端口_运维_46


接着回到02机器,同步目录的时候就需要输入用户名和密码了。还有一种方法,在02机器上保存密码文件,传输的时候就不必输密码了,具体操作见下图,输入命令 vi /etc/rsync_pass.txt,回车,

rsync 使用ssh协议如何设置ssh端口_vim_47


这边和001机器上的操作不一样,这边直接输入密码,保存并退出即可。文件的权限也要改为600,接着同步服务的时候,输入命令 rsync -avP /tmp/test/ --port=8730 --password-file=/etc/rsync_pass.txt test@192.168.218.128::test/,回车,见下图,

rsync 使用ssh协议如何设置ssh端口_配置文件_48


这样同步的时候就不用输密码了。

转载于:https://blog.51cto.com/13503302/2104018