如何使用Rsync与非标准SSH端口同步文件/目录

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

Rsync文件通过SSH非标准端口

因此,必须将您的SSH默认端口号更改为非常难以猜测的值。 在这种情况下,如何将文件/文件夹与远程服务器同步? 不用担心,这不是那么困难。 这里我们将看到如何使用rsync与非标准SSH端口同步文件和文件夹。

正如你可能知道,rsync的 ,也被称为远程同步 ,是一种快速,多功能,以及强大的工具,可用于复制和同步文件/目录从地方到本地或本地到远程主机。 有关rsync的更多详细信息,请检查手册页:

# man rsync

或者从下面的链接参考我们以前的指南。

  1. Rsync:10 Linux中Rsync命令的实际示例

将SSH端口更改为非标准端口

大家都知道,在默认情况下rsync使用默认SSH端口22上的本地到远程主机,反之亦然同步文件。 我们应该更改远程服务器的SSH端口以加强安全性。

要做到这一点,打开和编辑SSH配置的/ etc / ssh / sshd_config文件:

# vi /etc/ssh/sshd_config 

找到以下行。 取消注释并更改您选择的端口号。 我建议你选择任何数字,这是很难猜到。

请确保您使用的是现有服务未使用的唯一编号。 选中此netstat的文章知道哪些服务上的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的/ 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与非标准端口同步文件。

如何Rsync与非标准SSH端口

从终端运行以下命令以使用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: youcl
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 youcl@192.168.1.103:/backup1 /home/sk/backup2
示例输出
youcl@192.168.1.103'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,没有后顾之忧。 只需更改默认端口和同步文件像一个亲。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏