วิธีซิงค์ไฟล์/ไดเร็กทอรีโดยใช้ Rsync กับพอร์ต SSH ที่ไม่ได้มาตรฐาน
วันนี้เราจะมาพูดถึงวิธีซิงค์ไฟล์โดยใช้ rsync กับพอร์ต SSH ที่ไม่ได้มาตรฐาน คุณอาจสงสัยว่าเหตุใดเราจึงต้องใช้พอร์ต SSH ที่ไม่ได้มาตรฐาน เป็นเพราะเหตุผลด้านความปลอดภัย ทุกคนรู้ดีว่า 22 คือพอร์ตเริ่มต้นของ SSH
ดังนั้นจึงจำเป็นต้องเปลี่ยนหมายเลขพอร์ตเริ่มต้น SSH ของคุณเป็นอย่างอื่นซึ่งคาดเดาได้ยากมาก ในกรณีเช่นนี้ คุณจะซิงค์ไฟล์/โฟลเดอร์ของคุณกับเซิร์ฟเวอร์ระยะไกลได้อย่างไร ไม่ต้องกังวล มันไม่ใช่เรื่องยากขนาดนั้น ที่นี่เราจะดูวิธีซิงค์ไฟล์และโฟลเดอร์โดยใช้ rsync กับพอร์ต SSH ที่ไม่ได้มาตรฐาน
ดังที่คุณอาจทราบ rsync หรือที่เรียกว่า Remote Sync เป็นเครื่องมือที่รวดเร็ว อเนกประสงค์ และมีประสิทธิภาพที่สามารถใช้เพื่อคัดลอกและซิงค์ไฟล์/ไดเร็กทอรีจากในเครื่องไปยัง ท้องถิ่นหรือท้องถิ่นไปยังโฮสต์ระยะไกล สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ rsync ให้ตรวจสอบหน้า man:
man rsync
หรืออ้างอิงคำแนะนำก่อนหน้าของเราจากลิงก์ด้านล่าง
- Rsync: 10 ตัวอย่างการปฏิบัติของคำสั่ง Rsync ใน Linux
เปลี่ยนพอร์ต SSH เป็นพอร์ตที่ไม่ได้มาตรฐาน
ดังที่เราทุกคนทราบดีว่า โดยค่าเริ่มต้น rsync จะใช้พอร์ต SSH เริ่มต้น 22 เพื่อซิงค์ไฟล์ผ่านโลคัลกับโฮสต์ระยะไกลและในทางกลับกัน เราควรเปลี่ยนพอร์ต SSH ของเซิร์ฟเวอร์ระยะไกลเพื่อเพิ่มความปลอดภัย
ในการดำเนินการนี้ ให้เปิดและแก้ไขไฟล์การกำหนดค่า SSH /etc/ssh/sshd_config:
vi /etc/ssh/sshd_config
ค้นหาบรรทัดต่อไปนี้ ยกเลิกการใส่ข้อคิดเห็นและเปลี่ยนหมายเลขพอร์ตที่คุณต้องการ ฉันขอแนะนำให้คุณเลือกหมายเลขใดก็ได้ที่เดายากมาก
ตรวจสอบให้แน่ใจว่าคุณใช้หมายเลขเฉพาะซึ่งบริการที่มีอยู่ไม่ได้ใช้ ตรวจสอบบทความ netstat นี้เพื่อทราบว่าบริการใดกำลังทำงานบนพอร์ต TCP/UDP ใด
ตัวอย่างเช่น ที่นี่ฉันใช้หมายเลขพอร์ต 1431
[...]
Port 1431
[...]
บันทึกและปิดไฟล์
ในระบบที่ใช้ RPM เช่น RHEL, CentOS และ Scientific 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 กับพอร์ตที่ไม่ได้มาตรฐาน
วิธี 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: 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 [email :/backup1 /home/sk/backup2
ผลลัพธ์ตัวอย่าง
[email '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 ก็ไม่ต้องกังวล เพียงเปลี่ยนพอร์ตเริ่มต้นและซิงค์ไฟล์อย่างมืออาชีพ