今天,我们将讨论如何使用RSYNC与非标准SSH端口同步文件。您可能想知道为什么我们需要使用非标准的SSH端口?这是由于安全原因。大家都知道22是SSH默认端口。

因此,必须将您的SSH默认端口号更改为不同的东西,这是很难猜测的。在这种情况下,您将如何将文件/文件夹与远程服务器同步?不用担心,这并不困难。在这里,我们将看到如何使用RSYNC与非标准SSH端口同步文件和文件夹。
您可能知道,rsync,也称为远程同步,是一种快速,通用且功能强大的工具,可用于从本地或本地或远程主机复制和同步文件/目录。有关RSYNC的更多详细信息,请检查男子页面:
# man rsync
或从下面的链接中参考我们以前的指南。
将SSH端口更改为非标准端口
众所周知,默认情况下Rsync使用默认的SSH端口22通过本地主机将文件同步,反之亦然。我们应该更改远程服务器的SSH端口以加强安全性。
为此,打开并编辑SSH配置/etc/ssh/sshd_config文件:
# vi /etc/ssh/sshd_config
找到以下行。不按下来并更改您选择的端口号。我建议您选择任何很难猜测的数字。
确保您使用的是现有服务未使用的唯一数字。检查一下知道哪些服务在哪些TCP/UDP端口上运行。
例如,在这里我使用端口号1431。
[...] Port 1431 [...]
保存并关闭文件。
在基于RPM的系统中,例如Rhel,,,,Centos, 和科学Linux 7,您需要通过防火墙或路由器允许新端口。
# firewall-cmd --add-port 1431/tcp # firewall-cmd --add-port 1431/tcp --permanent
在RHEL/CENTOS/Scientific Linux 6及以上,您还应该更新Selinux允许端口的许可。
# iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT # semanage port -a -t ssh_port_t -p tcp 1431
最后,重新启动SSH服务以生效更改。
# systemctl restart sshd [On SystemD] OR # service sshd restart [On SysVinit]
现在,让我们看看如何使用rsync与非标准端口同步文件。
如何使用非标准SSH端口rsync
使用rsync与非标准的SSH端口一起运行以下命令从终端运行到同步文件/文件夹。
句法:
# rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder
出于本教程的目的,我将使用两个系统。
远程系统详细信息:
IP Address: 192.168.1.103 User name: tecmint Sync folder: /backup1
本地系统详细信息:
Operating System: Ubuntu 14.04 Desktop IP Address: 192.168.1.100 Sync folder: /home/sk/backup2
让我们同步远程服务器的内容/backup1
我本地系统文件夹的文件夹/home/sk/backup2/
。
$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete :/backup1 /home/sk/backup2
样本输出
's password: receiving incremental file list backup1/ backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb 752,876 100% 13.30MB/s 0:00:00 (xfr#1, to-chk=2/4) backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb 9,676,510 100% 12.50MB/s 0:00:00 (xfr#2, to-chk=1/4) backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb 56,563,302 100% 11.26MB/s 0:00:04 (xfr#3, to-chk=0/4) sent 85 bytes received 66,979,455 bytes 7,050,477.89 bytes/sec total size is 66,992,688 speedup is 1.00.
让我们检查内容/backup1/
远程服务器中的文件夹。
$ sudo ls -l /backup1/
样本输出
total 65428 -rw-r--r-- 1 root root 9676510 Dec 9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb -rw-r--r-- 1 root root 752876 Dec 9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb -rw-r--r-- 1 root root 56563302 Dec 9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
现在,让我们检查/backup2/
本地系统的文件夹。
$ ls /home/sk/backup2/
样本输出
backup1
正如您在上述输出中看到的那样,/backup1/
已成功复制到我本地系统的/home/sk/backup2/
目录。
核实/backup1/
文件夹内容:
$ ls /home/sk/backup2/backup1/
样本输出
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
请参阅,远程和本地系统的文件夹都有相同的文件。
结论
使用RSYNC与SSH同步文件/文件夹不仅容易,而且快速安全的方法。如果您在限制港口22的防火墙后面,则不必担心。只需更改默认端口并像Pro一样同步文件。